Jump to content


M3W

Member Since 06/10/2010
Offline Last Active 19/10/2010, 11:51
-----

Topics I've Started

Dúvida Vba Excel 2003

06/10/2010, 17:23

Boa Tarde
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

IPB Skin By Virteq