Macro per filtro su più fogli Excel
Supponiamo di avere un file Excel contenete 10 fogli di lavoro e la necessita è questa:
quando filtro la colonna A nel foglio 1, ho bisogno che lo stesso filtro venga applicato ai fogli 8,9,10
In linea di massima si potrebbe operare con una function FiltroA scritta su ogni foglio in cui ti interessa avere questo automatismo e così all’attivazione del foglio in questione puoi avere lo stesso filtro che hai sul foglio 1 nella colonna A
Ecco un esempio di macro:
Option Explicit Private Sub Worksheet_Activate() 'Nel foglio 8, 9 e 10 inserisci il controllo dell'avento Activate If filtroA = "" Then If Me.FilterMode = True Then Me.Range("A1").AutoFilter Else Me.Range("A1").AutoFilter Field:=1, Criteria1:=filtroA End If End Sub Public Function filtroA() 'Questa funzione dovrà essere riportata su ogni foglio in cui vuoi riportare il filtro del foglio1 Dim sh As Worksheet Set sh = ThisWorkbook.Worksheets("Foglio1") With sh If .AutoFilterMode Then With .AutoFilter.Filters(1) If .On Then filtroA = .Criteria1 End If End With End If End With Set sh = Nothing End Function |
In alternativa, visto che sono più fogli su cui vuoi avere il controllo, puoi riportare la function in un modulo e così la scrivi una sola volta mentre l’evento Activate lo riporti su ogni foglio in cui vuoi avere l’automatismo.
Prova questa soluzione e facci sapere se funziona nel tuo file.