sintassi
- stato dei filtri nel foglio .AutoFilterMode
stato autofiltro nel foglio
ActiveSheet.AutoFilterMode = False / True
- per inserire i filtri automatici nel foglio .AutoFilter
se non presenti li mette altrimenti li toglie
Columns("X:X").AutoFilter indicare le colonne e nessun parametro
- verifica tabella .ShowAutoFilter
verifica se una tabella ha settato il filtro automatico
ListObjects(1).ShowAutoFilter
dopo aver inserito i filtri automatici nel foglio il codice VBA
- per attivare il filtro
Selection.AutoFilter Field:=NUMERO DI COLONNA, Criteria1:="TESTO DA FILTRARE", Operator:=xlAnd, Criteria2:="TESTO DA FILTRARE"
esempio: attivare il filtro scegliendo con un input il testo da filtrare
Dim criterio
criterio = InputBox("Cerca ???", "Metti il ???")
Selection.AutoFilter Field:=NUMERO DI COLONNA, Criteria1:=criterio
- per togliere il filtro
ActiveSheet.AutoFilterMode = False toglie i filtri automatici dal foglio
Selection.AutoFilter toglie dalla selezione il filtro (basta non mettere nessun criterio)
- verifica se un filtro é in uso
per verifica se un foglio con filtri automatici é filtrato, cioé con il filtro attivo ed alcune righe nascoste, si verifica che una determinata riga é nascosta
occrre individuare una delle righe che verrà nascosta quando si attiva il filtro
If Range("A2").Rows.Hidden Then se la riga 2 é nascosta allora
- per togliere il criterio filtrato lasciano il filtro
la possibilità di applicare il filtro resta ma toglie a tutte le celle del foglio il filtro applicato
ActiveSheet.UsedRange.AutoFilter Field:=1
da errore se la scheda é vuota magari metti un controllo errore
On Error Resume Next
ActiveSheet.UsedRange.AutoFilter Field:=1
On Error Goto 0
- per togliere il criterio filtrato lasciano il filtro in una tabella .ShowAllData
esempio: verifica se la tabella ha il autofiltro ed in caso togli tutti i filtri settati
If ListObjects(1).ShowAutoFilter Then ListObjects(1).AutoFilter.ShowAllData
per operare sui dati filtrati si utilizza la funzione .Hidden di una riga per vedere se la riga é nascosta dal filtro