Collegare le celle di due fogli di calcolo con VBA ed Excel 2007

di Giulio Vito de Musso

scritto il

La possibilità di poter utilizzare più fogli di calcolo per ogni progetto sviluppato rende facile l’organizzazione dei documenti dividendo i contenuti nei vari fogli e facendoli interagire.

Vedremo oggi come collegare automaticamente le celle di due fogli di calcolo quando queste non sono adiacenti fra di loro.

Questo metodo è superfluo quando vogliamo collegare in un foglio celle adiacenti di un altro foglio. In questo caso possiamo seguire l’how to pubblicato qualche tempo fa.

Utilizzeremo invece questo metodo quando nel foglio di partenza le celle sono in colonna e distanziate da un certo numero di righe. Ad esempio, ci potrà essere il dato “contabilità” nella cella A1 e il dato “amministrazione” nella cella A11 (in questo caso il passo è di dieci celle). Inoltre vorremo che nel foglio di arrivo i dati siano posti in colonna in maniera adiacente.

Apriamo l’editor di VBA (“Sviluppo” -> “Visual Basic”) e facciamo doppio click sull’oggetto “Foglio2”. Inseriamo il seguente codice:

Private Sub Worksheet_Activate()
PrimaRigaFoglio1 = 1
ColonnaFoglio1 = 1
ColonnaFoglio2 = 1
DistanzaCelleFoglio1 = 10
Riga = 1
While Foglio1.Cells(PrimaRigaFoglio1 + (Riga − 1) * DistanzaCelleFoglio1, ColonnaFoglio1).Value < > " "
Foglio2.Cells(Riga, ColonnaFoglio2).Value = Foglio1.Cells(PrimaRigaFoglio1 + ((Riga − 1) * DistanzaCelleFoglio1), >ColonnaFoglio1).Value
Riga = Riga + 1
Wend
End Sub

Abbiamo cura di impostare propriamente le variabili di inizio procedura.

Fatto ciò chiudiamo il tutto e salviamo con l’estensione “.XLSM“. All’apertura del file basterà attivare il secondo foglio per collegare i due fogli.