Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

riferimento variabile a fogli

935 views
Skip to first unread message

Salvatore Perrotta

unread,
May 2, 2019, 10:09:25 AM5/2/19
to
chiedo come sempre il vostro aiuto
ho un file con 12 fogli GENNAIO FEBBRAIO MARZO ... strutturati nello stesso modo
per ogni foglio devo fare una grande quantità di calcoli in base ai valori immessi nel campo B9:AI76 di ogni foglio mese
quindi ho creato un 13 foglio per svolgere i calcoli
la mia esigenza sarebbe copiare i dati del mese(foglio) selezionato nel tredicesimo foglio selezionando il mese
spero di essermi riuscito a spiegare
grazie come al solito.

Salvatore Perrotta

unread,
May 2, 2019, 10:20:07 AM5/2/19
to
avevo pensato di registrare una macro che copiasse il campo desiderato e incolla speciale solo valori nel 13° foglio
ma il problema è che il foglio da cui copiare deve cambiare in base al mese che seleziono in una cella del 13° foglio

buonoc...@gmail.com

unread,
May 2, 2019, 7:10:51 PM5/2/19
to
Non c'è problema nel dinamizzare il nome del foglio in una procedura VBA, ma la scelta della soluzione potrebbe essere condizionata dalla struttura dei dati. Se i tuoi dati da B9 a AI76 sono denominati o meglio in una tabella la soluzione migliore mi sembra un consolidamento in un unico foglio su quale poi fare calcoli o analisi dati (per es tabella e grafico Pivot ) Il consolidamento (dinamico nel senso che può riflettere modifiche sui fogli specifici dei mesi con un semplice click sul pulsante Aggiorna Tutti) può essere fatto senza VBA con Power Query (excel 2016-2'19 oppure Excel 2010-13 con il relativo add-in).
Alternativamente nel tuo 13° foglio puoi usare formule con la funzione INDIRETTO per rendere dinamico il riferimento al foglio del mese che vuoi analizzare.
Se posti un file di esempio e mi dici la versione di Excel che usi potrei essere più preciso.

Ciao
Elio

Bruno Campanini

unread,
May 2, 2019, 9:48:27 PM5/2/19
to
After serious thinking Salvatore Perrotta wrote :
==================================
Public Sub CopyRange()
Dim SourceRange As Range, TargetRange As Range
Dim CurrentMonth As String

CurrentMonth = [Sheet3!A1]
Set TargetRange = [Sheet3!C3]
Set SourceRange = Sheets(CurrentMonth).Range("B9:AI76")

SourceRange.Copy
TargetRange.PasteSpecial xlPasteAll

End Sub
===================================

Bruno

Salvatore Perrotta

unread,
May 3, 2019, 6:53:14 AM5/3/19
to
Grazie appena ho tempo mi studiero le due soluzioni

buonocor...@gmail.com

unread,
May 6, 2019, 2:13:12 PM5/6/19
to
Il giorno venerdì 3 maggio 2019 12:53:14 UTC+2, Salvatore Perrotta ha scritto:
> Grazie appena ho tempo mi studiero le due soluzioni

Il mio era stato solo un suggerimento. qui ho sviluppato 2 soluzioni alternative.
Con il primo file un esempio di consolidamento di dati provenienti da vari fogli con successiva analisi con Tabella Pivot.

Nel secondo file un esempio di trasferimento dei dati da tabella per selezione dinamica da altro foglio.
Su questo (foglio 'sommario') la possibilità di fare calcoli su tabella importata rispetto a calcoli con riferimento dinamico al nome della tabella di origine grazie alla funzione INDIRETTO
I dati di esempio sono limitati a solo 3 mesi. Puoi aggiungere nuovi fogli inserendo tabelle dati con nome costruito con mese in formato 'mmm' concatenato con '_dati'. Dopo ogni modifica dei dati di origine si deve aggiornare con il pulsante Aggiorna Tutti nelal struttura a schede oppure Aggiorna del click destro su tabella di destinazione
Il tutto senza VBA

https://www.dropbox.com/s/hygvrlqdfiauhgt/Consolidare%20dati-%20Power%20Query.xlsx?dl=0

https://www.dropbox.com/s/yqa1o3d4n0k7e1d/Spostamento%20dinamico%20dati%20tra%20fogli-%20Power%20Query.xlsx?dl=0

Salvatore Perrotta

unread,
May 27, 2019, 3:21:29 PM5/27/19
to
GRAZIE dei consigli ho studiato la funzione indiretto e ho risolto in questo modo: ho creato un elenco nel 13° foglio con i nomi dei 12 fogli precedenti ricavati con questa formula

=STRINGA.ESTRAI(CELLA("nomefile";GENNAIO!A1);TROVA("]";CELLA("nomefile";GENNAIO!A1))+1;255)

logicamente scritta 12 volte con il nome foglio diverso in modo che se il foglio viene rinominato si aggiorna l elenco

poi nella cella $A$14 con la convalida scelgo il nome del foglio che verrà usato in questa formula che posso trascinare a piacimento

=INDIRETTO(CONCATENA($A$14;"!";(INDIRIZZO((RIF.RIGA(A1));(RIF.COLONNA(A1))))))

di nuovo grazie
0 new messages