1
resposta

Dúvida em relação a macro

Olá, tudo bem?

Meu botão "Filtrar SP" não está funcionando corretamente. Ele apenas está apagando o conteúdo da célula F2 e não está filtrando. Segue meu código:

Sub FiltrarSP()
'
' FiltrarSP Macro
' Filtro SP na base filtrada
'

'
    Range("A2:M2").Select
    Selection.ClearContents '' apaga o conteúdo dessas células
    
    Range("G2").Select
    ActiveCell.FormulaR1C1 = "utilitario pequeno"
    Range("H2").Select
    ActiveCell.FormulaR1C1 = "sp"
    Range("J2").Select
    ActiveCell.FormulaR1C1 = "*em aberto*"
    Range("J3").Select
    
    Application.CutCopyMode = False
    Application.CutCopyMode = False
    Application.CutCopyMode = False
    Application.CutCopyMode = False
    Range("OrigemDinamica").AdvancedFilter Action:=xlFilterCopy, CriteriaRange _
        :=Range("A1:M2"), CopyToRange:=Range("A5:M5"), Unique:=False
        
    Sheets("Valor por veículo").Select
    
'
' AtualizaDinamica Macro
' Essa macro atualiza os dados da tabela dinâmica
'

'
    ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
    Sheets("Base Filtrada").Select
End Sub

Tabela Excel

1 resposta

Olá, Fabiola! Espero que esteja tudo bem com você.

Parece que o problema está no fato de que o seu código não está limpando todos os campos antes de aplicar o filtro. Isso pode fazer com que os filtros anteriores interfiram no resultado final.

No código que você compartilhou, a linha Selection.ClearContents está apagando apenas o conteúdo das células de A2 até M2. No entanto, se houver algum valor em outras células da linha 2, isso pode estar afetando o resultado do seu filtro.

Para resolver isso, você pode adicionar uma linha no início do seu código para limpar todo o conteúdo da linha 2 antes de aplicar o filtro.

Se não for o motivo do problema, você pode conferir a configuração de botão, o intervalo de dados e depurar o código para entender melhor o que está acontecendo.

Espero que dê tudo certo!

Abraços.