Per il problema tabella pivot, forse diventa piu’ semplice se fai un esempio di come sono i dati, di come ti viene la tabella pivot, e di quello che vorresti ora ottenere.
Per l’ altro problema, la risposta e’ “si puo’ fare”, ma non so se ce la puoi fare usando solo il forum.
Provo a darti delle linee guida e dei pezzi di codice, seguendo l’ idea che mi sono fatta.
a)supponiamo che i tuoi dati cominciano su riga 2, e che la chiave di filtro (non ho capito se e’ un cod. Cliente o un cod. Fornitore) sia in col A; questa chiave deve essere presente su tutte le righe valide.
b)memorizzi l’ ultima riga usata ed esci se e’ pari a 2
- Codice: Seleziona tutto
LastRow=Range("A65536").end(xlUp).Row
If LastRow=2 then Exit Sub
(invece di Exit Sub potresti andare a una label in cui fai le operazioni di completamento del processo, es Msgbox, chiusura file, altri riti propiziatori..)
c)leggi il valore di A2 e filtri la colonna su quel valore; cerca nel forum altri esempi di macro che lavorano su filtro automatico, in linea di massima userai qualcosa come
- Codice: Seleziona tutto
Fival=Range("A2").value
Range("A:A").Select
Selection.AutoFilter Field:=1, Criteria1:=Fival
d)copi da riga 2 a LastRow
- Codice: Seleziona tutto
Range("2:" & LastRow).SpecialCells(xlCellTypeVisible).Copy
e) a questo punto inserisci le procedure che gia’ usi, per elaborare i dati filtrati
f) torni sul file/foglio di origine, cancelli tutte le righe al momento visibili (perche’ gia’ elaborate) ed elimini il filtro
- Codice: Seleziona tutto
Range("2:" & LastRow).SpecialCells(xlCellTypeVisible).Delete
Selection.AutoFilter Field:=1, Criteria1:="="
g) ritorni allo step b fino all’ uscita per esaurimento dei dati originali
Spero che ti dia lo spunto buono.
Ciao.