Jump to content


M3W

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

Posts I've Made

In Topic: Dúvida Vba Excel 2003

11/10/2010, 13:54

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

In Topic: Dúvida Vba Excel 2003

08/10/2010, 15:19

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

In Topic: Dúvida Vba Excel 2003

07/10/2010, 14:18

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

In Topic: Dúvida Vba Excel 2003

06/10/2010, 19:09

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.

IPB Skin By Virteq