Jump to content


M3W's Content

There have been 5 items by M3W (Search limited from 22/05/2023)


Ordernar por                Order  

#1004414 Dúvida Vba Excel 2003

Posted by M3W on 11/10/2010, 13:54 in Visual Basic

Consegui resolver LeoB

Fiz o código de verificação onde ocorre o erro cmdGRUPO
e no x coloquei o número do erro '380'


Agora está funcionando perfeitamente.


Muito obrigado pela ajuda.

Vlw



#1004356 Dúvida Vba Excel 2003

Posted by M3W on 08/10/2010, 15:19 in Visual Basic

Bem sem esse código para identifiar o erro o que acontece é que quando eu clico no botão de busca a macro faz um filtro em uma coluna e com o que estiver numa celula ele ele faz o filtro.

O programa roda normalmente sem problemas, mas se a célula tiver uma palavra que não tem na coluna a macro depura
Erro em tempo de execução '308':
Não foi possível definir a propriedade ListIndex. Valor de propriedade inválido


Quando termina o macro da sequência a minha programação que é a seguinte

Private Sub cmdGRUPO_Click()

	cbxGRUPO.Enabled = True
	cmdCONFIRMAR.Enabled = True
	Geconomico = txtGRUPO.Text
	cmdPesquisar.Enabled = True

		Range("Capa!S5").Value = "Desativado"
	
			If Geconomico = "" Then
				MsgBox " Digite o Grupo Econômico "
	
			Else
				UCase (Geconomico)
				Range("Capa!R1") = Geconomico
					Call Módulo1.MacroGRUPO
										
					
						cbxGRUPO.Clear
						Range("Capa!AB1").Select
						Preencher = True
							Do While Preencher = True
								ActiveCell.Offset(1, 0).Select
								If ActiveCell.Value = vbNullString Then
									Preencher = False
								Else
									cbxGRUPO.AddItem ActiveCell.Value
								End If
							Loop
								(cbxGRUPO.ListIndex = 0)
									Range("Capa!A1").Select
		
			End If
			
End Sub
A linha entre parenteses é onde a macro depura sem o código de verificação
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

Quando eu ativo o tratamento do erro, ele manda a msg caso o que tenha na célula não contenha na coluna e exibe a msg Erro na digitação, mas ele também exibe a msg se a célular tiver um conteúdo que contenha na coluna.

Ou seja ele ta parando o programa mesmo se a célula estiver com um valor válido ou não.



Espero ter sido o mais detalhado possível.


Obrigado



#1004310 Dúvida Vba Excel 2003

Posted by M3W on 07/10/2010, 14:18 in Visual Basic

Boa tarde LeoB

O código ficou 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
                Exit Sub
TrataErro:
            If Err.Number = X Then
                MsgBox "Erro na digitação Y", vbInformation, "Erro na digitação"
                End
                Exit Sub
            End If


End Sub

Bem com o código assim quando a pessoa digita algo que contém na coluna tudo funciona normalmente.
Mas quando digitado algo que não contém ele ta passando direto p/ parte seguinte e depurando mais a frente do programa onde deveriam ter os dados que foram filtrados.


Obrigado



#1004286 Dúvida Vba Excel 2003

Posted by M3W on 06/10/2010, 19:09 in Visual Basic

Boa noite LeoB

Eu fiz isso mas agora está passando direto e depurando quando algo for digitado incorretamente.
O que eu posso fazer ?

Vlw a dica.



#1004281 Dúvida Vba Excel 2003

Posted by M3W on 06/10/2010, 17:23 in Visual Basic

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