Su un foglio DATA ho la colonna A che contiene una lista di nomi (Anto, Robi, Jo, Simo, ecc) a cui corrispondono tanti fogli con lo stesso nome (Anto, Robi, Jo, Simo, ecc.). Excel deve leggere cella x cella la lista, posizionarsi sul relativo foglio e lì copiare nelle colonne A,B,C,D una serie di dati che trova sul foglio DATA nelle colonne E,F,G,H. Quale comando usare per trovare e posizionarsi sul foglio giusto?
Per muoversi sui fogli è molto semplice.
Se per esempio usiamo la funzione di "registrazione macro" e porviamo a effettuare qualche piccola azione sul foglio di lavoro, interrompiamo la macro e premendo ALT+F11 andiamo a vedere cosa ha scritto Excel per tener traccia delle nostre azioni, potremo in generale imparare molto della programmazione VBA senza troppa fatica.
Per sempio se ci si sposta dal Foglio1 al Foglio2 e viceversa e si clicca su qualche cella, potremo avere una macro come sa seguente:
Sub Macro1()
'
' Macro1 Macro
' Macro registrata il 04/12/2008 da aterzaghi
'
'
Sheets("Foglio2").Select
Range("G24").Select
Sheets("Foglio1").Select
Range("D10").Select
End Sub
Come si può vedere, per andare su un foglio è sufficente la seguente funzione:
Sheets("Nome foglio").Select
ammettiamo ora che il nome del foglio sia un parametro, che ciamiamo NomeFoglio
Possiamo allora scrivere:
NomeFoglio = "Foglio1"
Sheets(NomeFoglio).Select
la prima istruzione assegna a NomeFoglio il nome effettivo del foglio e la seconda lo attiva.
Se il nome del foglio si trova sul file excel ad esempio nella cella A1 potemo scrivere:
NomeFoglio=[A1]
oppure
NomeFoglio=cells(1,1).value
per invece assegnare un valore a una cella di Excel, potremo invertire l'instruzione:
cells(4,4).value = NomeFoglio
Scarica la Toolbar!
Post new comment