Questo sito utilizza cookie, anche di terze parti, per migliorare la tua esperienza e offrire servizi in linea con le tue preferenze. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsenti all’uso dei cookie

Stampa

In post precedente avevamo spiegato come realizzare, tramite una query, una tabella pivot che riepiloga i dati di più fogli di lavoro.

Avevamo già accennato al fatto che l'indirizzo del file coi dati, anche se è lo stesso dove si trova la tabella pivot, è memorizzato con tutto il suo percorso, all'interno del file con la tabella pivot e che, dunque, se si sposta o rinomina il file occorre aggiornare la stringa di connessione.

Oggi vi proponiamo la routine visual basic che  aggiorna automaticamente la connessione. Noi abbiamo i dati e la pivot nello stesso file, per cui in apertura, andremo a leggere il nome e il percorso del nostro file e con quello costruiremo la stringa di connessione della query, che risulterà sempre corretta, anche se spostiamo il file.

Se i dati si trovano in un file diverso da quello con la pivot, potreste scrivere il nome e il percorso in apposite celle e leggerlo da li, magari non all'apertura del file, ma alla pressione di un apposito pulsante.

Noi abbiamo scritto questo codice sul modulo associato all'intera cartella di lavoro

Private Sub Workbook_Open()
Dim strPercoso As String
Dim strFile As String

strPercorso = ActiveWorkbook.Path
strFile = ActiveWorkbook.Name

strConn = "ODBC; DSN=Excel Files;DBQ=" & strPercorso & "" _
& strFile & ";DefaultDir=" & _
strPercorso & ";DriverId=1046;MaxBufferSize=2048;PageTimeout=5;"

ActiveWorkbook.PivotCaches(1).Connection = strConn
End Sub

 

Noi immaginiamo che nel file ci sia solo una tabella pivot. PivotCaches è un insieme rappresenta tutte le cache di tabella pivot nella cartella di lavoro specificata. Fra le parentesi tonde indichiamo il numero di indice della tabella pivot su cui vogliamo intervenire.