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

Rimani informato sugli aggiornamenti di SOS-OFFICE. Inserisci il tuo indirizzo e-mail: Informativa sulla privacy

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.

Joomla templates by a4joomla