Allora facciamo cosi':
1) In un "modulo standard del vba" copia e incolla questa macro:
- Codice: Seleziona tutto
:) Sub AdvFilter()
Dim ColFiltro, ColDati, wArr, lastA As Long, LastC As Integer, K As Long
Dim sSh As Worksheet, dSh As Worksheet, I As Long, noBB As Boolean
Dim fArr, J As Long
'
ColFiltro = Array(1, 2, 3, 10) '<<<1 Le colonne dove si trovano i filtri (1=A, 2=B etc)
ColDati = Array(1, 2, 10, 11, 12, 13) '<<<2 Le colonne in cui si trovano i dati da copiare
'
Set sSh = Sheets("Foglio1") '<<<3 Il nome del foglio con i dati di origine
Set dSh = Sheets("Foglio2") '<<<4 Il nome del foglio con i Filtri dove si creera' l'elenco
'
lastA = sSh.Cells(Rows.Count, 1).End(xlUp).Row
LastC = Application.WorksheetFunction.Max(ColDati, ColFiltro)
wArr = sSh.Range("A1").Resize(lastA, LastC).Value
fArr = dSh.Range(dSh.Range("A1"), dSh.Range("A1").End(xlToRight)).Value
ubf = UBound(fArr, 2): K = 1
dSh.Range("A2").Resize(200, ubf + Application.WorksheetFunction.Count(ColDati) + 2).ClearContents
For I = 1 To lastA
noBB = False
For J = 0 To UBound(ColFiltro)
If wArr(I, ColFiltro(J)) <> fArr(1, J + 1) Then
noBB = True
Exit For
End If
Next J
If noBB = False Then
K = K + 1
For J = 0 To UBound(ColDati)
dSh.Cells(K, J + 1) = wArr(I, ColDati(J))
Next J
End If
Next I
'
Set sSh = Nothing
Set dSh = Nothing
Erase wArr
End Sub
Personalizza le righe marcate <<< come da commento
In particolare con <<<1 indichi quali sono le colonne a cui i filtri descritti al punto 2 saranno applicati, e in <<<2 indichi quali sono le colonne che vuoi riportare una voltra che i filtri sono soddisfatti
2) In Foglio2, da A1 verso destra scrivi quali filtri vuoi applicare
Eseguendo la macro, l'area di Foglio2 sottostante ai filtri sara' AZZERATA SENZA PREAVVISO per 200 righe e il nuovo elenco basato sui filtri indicati sara' creato da zero.
Per inserire la macro in un "modulo standard del vba", partendo da Excel:
-premi Alt-F11 per aprire l'editor delle macro
-Menu /Inserisci /Modulo
-Copia il codice e incollalo nel frame dx del modulo appena creato
Personalizza le righe marcate <<< come detto
Per eseguire la macro, sempre da Excel:
-premi Alt-F8
-seleziona AdvFilter dall'elenco di macro disponibili
-premi Esegui
Prova e fai sapere...