Essencialmente, tudo o que você precisa é "atualizar" o filtro dizendo ao Excel para filtrar as mesmas condições no novo intervalo de dados.
Observe que o uso de UsedRange
implica que todos os dados estejam em linhas e colunas contíguas. Além disso, ajuste os argumentos AutoFilter
conforme necessário.
Como seus dados estão vinculados por meio de fórmulas, o Worksheet_Change
nunca será acionado quando as fórmulas são atualizadas. Você precisará usar o evento Worksheet_Calculate
, mas lembre-se de que isso irá disparar toda vez que a planilha for calculada, o que pode ou não ser oneroso.
Eu também alterei seu If
condicional para IF Me.AutoFilterMode = True
, pois o FilterMode
não será verdadeiro se nada for realmente filtrado, mesmo que os filtros estejam ativados.
Private Sub Worksheet_Calculate()
If Me.AutoFilterMode = True Then
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
Me.UsedRange.AutoFilter 2, "North" 'filters column B for myFilter value change as needed
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
End If
End Sub