Este é o meu primeiro tópico aqui e espero que algum membro possa me auxiliar
Eu tenho uma macro rodando em uma planilha de excel
e nela tenho 3 sheets (Capa, Dados, Exibição)
Bem na sheet Capa tem um textbox e um botão. O que a pessoa digita no textbox ele faz um filtro em uma coluna da base de dados e filtra o que foi digitado.
Bem o programa roda normalmente no entanto caso a pessoa digite algo que não contenha na coluna onde é realizado o filtro o programa depura.
Eu gostaria de criar um jeito de verificar e ao invés de depurar exiba uma msg de erro para a pessoa para que ela digite novamente.
Meu programa está com o seguinte código
Sub MacroGRUPO() Dim varGRUPO As String varGRUPO = Range("Capa!R1").Value Range("PBT!D:D").AutoFilter Field:=1, Criteria1:="=*" & varGRUPO & "*", Operator:=xlAnd Range("PBT!A3:BJ40000").Copy Range("Dados!A3").PasteSpecial Range("PBT!D:D").AutoFilter Range("Capa!U2").Select ActiveSheet.PivotTables("Tabela Dinâmica Grupo Econômico").PivotCache.Refresh Range("A1").Select
Recebi uma dica para adicionar um verificador depois da minha rotina, a principio ele funciona e exibe a msg de erro, mas ele está fazendo isso tanto quando a pessoa digita algo errado qnt quando digita algo correto.
O código fica assim:
Sub MacroGRUPO() On Error GoTo TrataErro Dim varGRUPO As String varGRUPO = Range("Capa!R1").Value Range("PBT!D:D").AutoFilter Field:=1, Criteria1:="=*" & varGRUPO & "*", Operator:=xlAnd Range("PBT!A3:BJ40000").Copy Range("Dados!A3").PasteSpecial Range("PBT!D:D").AutoFilter Range("Capa!U2").Select ActiveSheet.PivotTables("Tabela Dinâmica Grupo Econômico").PivotCache.Refresh Range("A1").Select TrataErro: If Err.Number = X Then MsgBox "Erro na digitação", vbInformation, "Erro na digitação" End Exit Sub End If End Sub
Espero que alguém possa ajudar.
Obrigado