Página 1 de 1

Rodar Macro conforme dado inserido na célula

Enviado: 11 Jun 2021 às 12:37
por JacoStein
Pessoal

Tenho dados mensais em uma tabela dinâmica
Como faço para que, quando eu digitar "Mai" na célula J5,
ele execute a Macro que vai filtrar nesse mês a tabela dinâmica?


Se ajudar, eu achei em um site este código, mas não está funfando aqui:
====================
Private Sub Worksheet_Change(ByVal Target As Range)

'Como Executar A Macro Com Base No Valor Selecionado Da Lista Suspensa No Excel?
'FONTE: https://pt.extendoffice.com/documents/e ... -list.html

If Not Intersect(Target, Range("J6")) Is Nothing Then
Select Case Range("J6")
Case "Mai": Mai 'se Mai na célula J6, e ele roda a macro "Mai"
Case "Jun": Jun
Case "Jul": Jul
End Select
End If
End Sub
====================
MINHA MACRO QUE FILTRA A TAB DINAMICA PELO MÊS:
Sub Mai()

ActiveSheet.PivotTables("Tabela dinâmica10").PivotFields("MÊS").ClearAllFilters
ActiveSheet.PivotTables("Tabela dinâmica10").PivotFields("MÊS").CurrentPage = _
"5/2021"
ActiveSheet.PivotTables("Tabela dinâmica11").PivotFields("MÊS").ClearAllFilters
ActiveSheet.PivotTables("Tabela dinâmica11").PivotFields("MÊS").CurrentPage = _
"5/2021"

End Sub

Agradeço desde já qualquer ajuda, obrigado. ;)

Imagem

Re: Rodar Macro conforme dado inserido na célula

Enviado: 11 Jun 2021 às 13:21
por babdallas
Código: Selecionar todos
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Texto As String
    Dim arr As Variant
    
    arr = Array("Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez")
      If Not Intersect(Target, Me.Range("J5")) Is Nothing Then
            Texto = Application.WorksheetFunction.Match(Range("J5").Value2, arr, 0)
            Me.PivotTables("Tabela dinâmica10").PivotFields("MÊS").ClearAllFilters
            Me.PivotTables("Tabela dinâmica10").PivotFields("MÊS").CurrentPage = Texto & "/2021"
      End If
End Sub

Re: Rodar Macro conforme dado inserido na célula

Enviado: 11 Jun 2021 às 14:48
por JacoStein
Certíssimo meu caro @babdallas
Adaptei a macro aqui e deu certo! Muito obrigado!