|
Rank: AiutAmico
Iscritto dal : 5/10/2010 Posts: 723
|
Ciao, Eseguito: Ecco la FOTO della tabella Pivot, che si limita alla prima parte (da col.8 a col.20). Manca la seconda parte, a destra nel foglio, da col.21 a col.33 E la FOTO di quanto mi hai chiesto di eseguire Per completezza, magari ti può essere utile per una diagnosi, allego anche la FOTO della tabella di confronto, che arriva fino a riga 61140, ma solo la prima delle cinque tabelle, da col.AK a col.AN, perché non passa poi alla successiva, da col.AP a col.AS... Non riesco proprio a capire quale problema possa incontrare con la nuova versione del programma, dato che non deve fare cose dell'altro mondo... le cose dell'altro mondo le fai tu con queste macro! Hai tutta la mia ammirazione... Grazie infinite e buona giornata, eZio
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve purtroppo non riesco a riprodurre l'errore con il mio 2003. Da quanto mi mostri il problema è nel passaggio delle tabelle . Ti chiedo di fare questa ulteriore prova aggiungi queste due righe Test=Cells(Rtab + 1, 256).End(xlToLeft).value Tad=Cells(Rtab + 1, 256).End(xlToLeft).address prima della seguente riga: Cells(Rtab + 1, 256).End(xlToLeft).Delete fammi sapere che valore estrae. Per quanto riguarda invece l'indicazione Somma di Numero/Conteggio di numero la macro esegue giustamente il conteggio e non la somma, nella versione 2007 non viene cambiata la Caption (definizione) del campo. saluti Giap
|
|
Rank: AiutAmico
Iscritto dal : 5/10/2010 Posts: 723
|
Ciao, aggiungo le righe, lancio la macro. A un certo punto (presumo quando arriva all'ultima riga della 1^ tabella di confronto di Foglio2) compare la solita finestra di errore di run-time'1004' impossibile nascondere la selezione. Ecco la FOTO del debug. Ma non restituisce null'altro, solo la solita mezza tabella. a10n11 ha scritto:Per quanto riguarda invece l'indicazione Somma di Numero/Conteggio di numero la macro esegue giustamente il conteggio e non la somma, nella versione 2007 non viene cambiata la Caption (definizione) del campo ... non capisco: è un'incongruenza tra le due versioni del programma? In effetti i numeri sono un conteggio, non una somma... Grazie assai e buon pomeriggio, eZio
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve quello che mi serve vedere sono i valori che assumono le due variabili Test - Tad quando arrivi al punto di errore devi andare con il cursore sopra la voce Test e copiare il valore assunto la stessa cosa sulla voce Tad Test=Cells(Rtab + 1, 256).End(xlToLeft).value Tad=Cells(Rtab + 1, 256).End(xlToLeft).address Per quanto riguarda invece il titolo della casella della Tabella Pivot , in ambiente 2000/2003 cambiando il metodo viene anche cambiata la titolazione, in mabiente 2007 probabilmente bisogna cambiare la Caption da codice. prova a sostituire questa riga: ActiveSheet.PivotTables("Tabella_pivot" & Pr).PivotFields("Somma di Numero"). _ Function = xlCount con queste: With ActiveSheet.PivotTables("Tabella_pivot" & Pr).PivotFields("Somma di Numero") .Function = xlCount .Caption = "conteggio di numero" End With saluti Giap
|
|
Rank: AiutAmico
Iscritto dal : 5/10/2010 Posts: 723
|
Ciao, scusa la mia ignoranza :)) Ecco cosa restituisce la macro: Test= "Totale complessivo" Tad= "$S$5" Per quanto riguarda il "Conteggio di numero" come al solito ...Centro!Grazie e buona serata, eZio EDIT:ho fatto una prova con una copia del file delle mie tabelle: ho più che raddoppiato le righe delle tabelle > da circa 4.700 a circa 11.500 e ho messo l'apice alla riga Cells(Rtab + 1, 256).End(xlToLeft).Delete Risultato: la macro gira e termina, le tabelle di confronto tabelle di Foglio2 sono tutte compilate, arrivano circa a riga 150.000, ma il calcolo restituisce le due tabelle Pivot senza la colonna centrale che le separa... E nella cella di competenza viene mostrato "Conteggio di numero" ;)
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve 1) per la colonna scomparsa:(mistero!!!) prova a variare la riga in rosso: Sub CreaPivot2() Select Case Tab2 Case 1 colp = 3 Rtab = Sheets("TabPivot").Range("C65536").End(xlUp).Row + 3 Case 2 colp = 22....... così vediamo che succede. 2) per l'errore della riga incriminata, non vorrei che ci fosse una variazione nella sintassi VBA. Dovresti provarmi quanto segue: vai sul foglio TabPivot >accendi il registratore di macro> con il registratore attivato, Clik Dx sulla cella "Totale complessivo" click su "Nascondi" ferma il registratore di macro e posta il codice registrato. saluti Giap
|
|
Rank: AiutAmico
Iscritto dal : 5/10/2010 Posts: 723
|
Ciao, ho fatto, ma l'opzione "nascondi" non c'è... :(( ecco la FOTO del menù che ho a disposizione. Ed ecco il codice al click sull'unica voce riguardante il Totale complessivo (rimuovi): Sub Macro1() ActiveSheet.PivotTables("Tabella_pivot1").RowGrand = False End SubAgendo invece sull'opzione "Opzioni tabella pivot" del menù a tendina si accede alla FINESTRA e togliendo la spunta della voce "Mostra totali complessivi per le righe" ecco il codice: Sub Macro2() Range("S5").Select ActiveSheet.PivotTables("Tabella_pivot1").ColumnGrand = False End Subspero che siano sufficienti per capire l'origine del problema... Grazie infinite e buona giornata, eZio p.s. come si può intravedere nella foto, ora le 2 tabelle Pivot sono separate dalla fatidica colonna! ;)) sei immensamente bravo............ EDIT:leggendo nel codice della macro2 noto un S5 che ha un non so ché di familiare.... è per caso (scusami se dico una castroneria...ricordi? sono una cippa in materia ahahah) quel famoso Tad="$S$5" ?!?
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
aetio ha scritto:Ciao,
p.s. come si può intravedere nella foto, ora le 2 tabelle Pivot sono separate dalla fatidica colonna!
EDIT: leggendo nel codice della macro2 noto un S5 che ha un non so ché di familiare.... è per caso (scusami se dico una castroneria...ricordi? sono una cippa in materia ahahah) quel famoso Tad="$S$5" ?!? salve ora è tutto chiaro. Dall'immagine che hai postato, si vede come la tabella Pivot (la prima come in immagine) nella versione 2007 contrariamente alla mia versione non si ferma alla colonna S ma si estende fino alla colonna T da qui l'errore dovuto ad una sovrapposizione. Quindi con la modifica della variabile "Colp" portata a 22 la cosa si è risolta. Dal codice registrato che hai postato ho imparato qualcosa di nuovo anche io (la proprietà RowGrand e ColumnGrand) quindi la soluzione finale con la modifica della variabile Colp e con la modifica che segue: eliminare le righe seguenti: Range("A65536").End(xlUp).Delete Cells(Rtab + 1, 256).End(xlToLeft).Delete e sostituirle con queste: ActiveSheet.PivotTables("Tabella_pivot" & Pr).ColumnGrand = False ActiveSheet.PivotTables("Tabella_pivot" & Pr).RowGrand = False In teoria ora dovrebbe girare a dovere. aetio ha scritto:Ciao, Leggendo nel codice della macro2 noto un S5 che ha un non so ché di familiare.... è per caso (scusami se dico una castroneria...ricordi? sono una cippa in materia ahahah) quel famoso Tad="$S$5" ?!? Si S5 della macro è lo stesso valore estratto dalla variabile Tad che ti ho fatto usare per verifcare che leggesse la cella giusta. saluti Giap
|
|
Rank: AiutAmico
Iscritto dal : 5/10/2010 Posts: 723
|
Ciao, ti confermo con grande soddisfazione che la macro ora gira perfettamente e senza più intoppi.
Un dettaglio, credo marginale: leggendo la macro/ sub Confronta_Tabelle2() c'è la riga Range("AK2:bH65536").ClearContents
e anche nella Sub CreaPivot2() dopo l'istruzione colp = 3 c'è Rtab = Sheets("TabPivot").Range("C65536").End(xlUp).Row + 3 e più sotto colp = 22 Rtab = Sheets("TabPivot").Cells(65536, colp).End(xlUp).Row + 3
il 65536 menzionato è riferito al 2002, penso... dato che ora la macro gira in un ambiente enormemente più grande bisogna fare qualche correzione a quella variabile?
Ti sono immensamente grato per l'aiutone-one-one e ancora -one che mi hai dato. Una lezione esemplare sotto ogni aspetto. Grazie infinite e buona giornata, eZio
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
Salve L'osservazione è legittima e la modifica indispensabile. aetio ha scritto: Un dettaglio, credo marginale: leggendo la macro/ sub Confronta_Tabelle2() c'è la riga Range("AK2:bH65536").ClearContents
Cambia così: Range("AK:BH" & Rows.Count).ClearContents aetio ha scritto: e anche nella Sub CreaPivot2() dopo l'istruzione colp = 3 c'è Rtab = Sheets("TabPivot").Range("C65536").End(xlUp).Row + 3
Cambia così: Rtab = Sheets("TabPivot").Cells(Rows.Count, colp).End(xlUp).Row + 3 aetio ha scritto: e più sotto colp = 22 Rtab = Sheets("TabPivot").Cells(65536, colp).End(xlUp).Row + 3
il 65536 menzionato è riferito al 2002, penso... dato che ora la macro gira in un ambiente enormemente più grande bisogna fare qualche correzione a quella variabile?
Cambia così: Rtab = Sheets("TabPivot").Cells(Rows.Count, colp).End(xlUp).Row + 3 Ora non mi rimane che augurati Buon lavoro. saluti Giap
|
|
Rank: AiutAmico
Iscritto dal : 5/10/2010 Posts: 723
|
Ciao, scusami tanto... che rompiscatole che sono!! :)) la macro con le nuove correzioni si blocca QUI con il messaggio di Errore di run-time: Metodo 'Range' dell'oggetto'_Global' non riuscito... Mi spiace molto disturbarti ancora su questo argomento... Grazie e buon pomeriggio, eZio
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
aetio ha scritto:Ciao, scusami tanto... che rompiscatole che sono!! :)) la macro con le nuove correzioni si blocca QUI con il messaggio di Errore di run-time: Metodo 'Range' dell'oggetto'_Global' non riuscito... Mi spiace molto disturbarti ancora su questo argomento... Grazie e buon pomeriggio, eZio salve ci credo che non funziona!!!!!!!!!!! un pezzo mi è rimasto sulla punta delle dita: l'istruzione giusta è : Range("AK2:BH" & Rows.Count).ClearContents se non gli si indicata la riga, con la sola colonna non si va nessuna parte. saluti e scusa per il disguido. Giap
|
|
Rank: AiutAmico
Iscritto dal : 5/10/2010 Posts: 723
|
Ciao, ora và che è una meraviglia! :)) Scusami se ti ho assillato con questa benedetta macro... se tu sapessi che problema mi hai risolto!!.... E quante cose ho imparato... Grazie infinite e buon pomeriggio, eZio
|
|
Guest |