Condividi:        

Macro per connessione tabelle pivot

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Macro per connessione tabelle pivot

Postdi fastbike73 » 15/06/18 14:53

Buonasera a tutto il forum, ho un problema possibilmente sorto dopo il passaggio da 32 bit a 64 bit.
In un foglio ho più tabelle pivot connesse tra loro e gestite da filtri pivot in modo che la scelta applicata su un filtro
dia l'esito richiesto su tutte le tabelle collegate.
Considerato che l'aggiornamento dei dati delle tabelle pivot avviene con una frequenza mensile avevo pensato di registrare una macro in cui toglievo tutte le connessioni tra tabelle per poi aggiornare i dati e successivamente un'altra macro che riabilitava la connessione. Beh da quando sono passato a 64 bit non funzionano più e il messaggio proposto è il seguente:
"Impossibile trovare la proprietà PivotTables per la classe Worksheet".
Per completezza di informazione posto il codice della macro che toglieva la connessione delle tabelle:

Codice: Seleziona tutto
Sub TogliConnessione()
'
' TogliConnessione Macro
' Toglie la connessione tra tabelle pivot
'
' Scelta rapida da tastiera: CTRL+MAIUSC+T
'
    ActiveSheet.Shapes.Range(Array("Data")).Select
    ActiveWorkbook.SlicerCaches("TS_Data1").PivotTables.RemovePivotTable ( _
        ActiveSheet.PivotTables("Media_settore"))
    ActiveWorkbook.SlicerCaches("TS_Data1").PivotTables.RemovePivotTable ( _
        ActiveSheet.PivotTables("Top10_Fam"))
    ActiveWorkbook.SlicerCaches("TS_Data1").PivotTables.RemovePivotTable ( _
        ActiveSheet.PivotTables("Vend_Neg"))
    ActiveWorkbook.SlicerCaches("TS_Data1").PivotTables.RemovePivotTable ( _
        ActiveSheet.PivotTables("Vend_Set"))
    ActiveSheet.Shapes.Range(Array("Negozio")).Select
    ActiveWorkbook.SlicerCaches("FiltroDati_Negozio").PivotTables.RemovePivotTable ( _
        ActiveSheet.PivotTables("Media_settore"))
    ActiveWorkbook.SlicerCaches("FiltroDati_Negozio").PivotTables.RemovePivotTable ( _
        ActiveSheet.PivotTables("Top10_Fam"))
    ActiveWorkbook.SlicerCaches("FiltroDati_Negozio").PivotTables.RemovePivotTable ( _
        ActiveSheet.PivotTables("Vend_Neg"))
    ActiveWorkbook.SlicerCaches("FiltroDati_Negozio").PivotTables.RemovePivotTable ( _
        ActiveSheet.PivotTables("Vend_Set"))
    ActiveSheet.Shapes.Range(Array("Settore")).Select
    ActiveWorkbook.SlicerCaches("FiltroDati_Settore").PivotTables.RemovePivotTable ( _
        ActiveSheet.PivotTables("Media_settore"))
    ActiveWorkbook.SlicerCaches("FiltroDati_Settore").PivotTables.RemovePivotTable ( _
        ActiveSheet.PivotTables("Top10_Fam"))
    ActiveWorkbook.SlicerCaches("FiltroDati_Settore").PivotTables.RemovePivotTable ( _
        ActiveSheet.PivotTables("Vend_Neg"))
    ActiveWorkbook.SlicerCaches("FiltroDati_Settore").PivotTables.RemovePivotTable ( _
        ActiveSheet.PivotTables("Vend_Set"))
    ActiveSheet.Shapes.Range(Array("Famiglia")).Select
    ActiveWorkbook.SlicerCaches("FiltroDati_Famiglia").PivotTables.RemovePivotTable _
        (ActiveSheet.PivotTables("Media_settore"))
    ActiveWorkbook.SlicerCaches("FiltroDati_Famiglia").PivotTables.RemovePivotTable _
        (ActiveSheet.PivotTables("Top10_Fam"))
    ActiveWorkbook.SlicerCaches("FiltroDati_Famiglia").PivotTables.RemovePivotTable _
        (ActiveSheet.PivotTables("Vend_Neg"))
    ActiveWorkbook.SlicerCaches("FiltroDati_Famiglia").PivotTables.RemovePivotTable _
        (ActiveSheet.PivotTables("Vend_Set"))
    ActiveSheet.Shapes.Range(Array("Punto Vendita")).Select
    ActiveWorkbook.SlicerCaches("FiltroDati_Punto_Vendita").PivotTables. _
        RemovePivotTable (ActiveSheet.PivotTables("Carrello_medio"))
End Sub


Ringraziandovi anticipatamente per il vostro aiuto vi porgo i miei saluti.

fastbike73
fastbike73
Win 10 & Office365
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 256
Iscritto il: 23/04/14 10:54

Sponsor
 

Re: Macro per connessione tabelle pivot

Postdi Anthony47 » 21/06/18 18:19

Mi sono guardato bene dall'installare versioni a 64 bit, quindi ragiono "a sentimento"...

La prima prova che mi viene in mente e' provare a sostituire ad "ActiveSheet", nei vari ActiveSheet.PivotTables("NomeTabella")) il vero nome del foglio; es
Codice: Seleziona tutto
Sheets("NomeFoglio").PivotTables("NomeTabella")


Poi controllerei che i nomi delle pivottables non siano nel frattempo cambiati.

Infine prova a registrare la stessa macro su Excel 64bit, per vedere se estrae un codice diverso.

Parliamo di codice inserito all'interno di un "modulo standard" del vba, giusto?

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro per connessione tabelle pivot

Postdi fastbike73 » 23/06/18 09:35

Buongiorno Anthony. Intanto ti ringrazio per l'aiuto.
Ho provato a rifare la macro con Excel 64 bit e adesso l'errore è cambiato:
"Errore di run time '5': Chiamata di routine o argomento non validi" .
Ho provato anche ad inserire i nomi dei fogli al posto dell'activesheet come mi hai suggerito ma l'errore è sempre lo stesso.
fastbike73
Win 10 & Office365
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 256
Iscritto il: 23/04/14 10:54

Re: Macro per connessione tabelle pivot

Postdi Anthony47 » 24/06/18 01:21

Potrebbe essere utile guardare il codice registrato da XL64 bit, e indica anche su quale riga compare l'errore.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Macro per connessione tabelle pivot":


Chi c’è in linea

Visitano il forum: Nessuno e 30 ospiti