Notifications
Clear all

Erro tempo de execução

7 Posts
4 Usuários
0 Reactions
1,500 Visualizações
(@robertonl)
Posts: 121
Estimable Member
Topic starter
 

Estou deparando com erro de tempo de execução neste código fonte 13. Tipos incompatíveis.
Tentei varias mudanças e não descubro onde possa encontrar o erro.

Private Sub Cod_Dzm_AfterUpdate()
 Dim intervalo1 As Range
 Dim codigo2 As Double
 Dim Pesquisa3
 Dim Pesquisa4
 Dim Pesquisa5
 codigo2 = Cod_Dzm
 Sheets("novo").Select
 Set intervalo1 = Range("a2:l1500")
 Pesquisa3 = Application.WorksheetFunction.VLookup(codigo2, intervalo1, 2, False)
 Pesquisa4 = Application.WorksheetFunction.VLookup(codigo2, intervalo1, 6, False)
 Pesquisa5 = Application.WorksheetFunction.VLookup(codigo2, intervalo1, 8, False)
 Nom_Dizm.Caption = Pesquisa3
 Bai_Dizm.Caption = Pesquisa4
 Set_Dizm.Caption = Pesquisa5
End Sub
 
Postado : 28/07/2016 6:16 pm
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa noite,

Por favor disponibilize uma cópia do arquivo, não precisa ser com os valores originais.

att,

 
Postado : 28/07/2016 6:40 pm
edilsonfl
(@edilsonfl)
Posts: 227
Estimable Member
 

ficaria mais fácil de analisar se vc enviasse a planilha.

mas inicialmente,

"codigo2 = Cod_Dzm"

qual o valor de "Cod_Dzm" ?

Quando ajuda for útil dê um clique na mãozinha, isso atribui ponto ao colaborador.

 
Postado : 28/07/2016 6:47 pm
(@robertonl)
Posts: 121
Estimable Member
Topic starter
 

Ele salva os dados, porem está dando tipo incompatível.

 
Postado : 28/07/2016 7:24 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Ao salvar os dados, a rotina "limpa" os campos : Cod_Dzm e Cod_Lcto
Assim "dispara" a rotina After_Update do campo Cod_Dzm, como a variavel Codigo2 está definida como Double, ao receber o valor vazio docampo recem limpo,gera o erro.
Avalie a possibilidade de alterar a rotina do after_update para; por exemplo; o evento Exit do campo, ou um if

Algo +/- assim:

Private Sub Cod_Dzm_AfterUpdate()
 Dim intervalo1 As Range
 Dim codigo2 As Variant
 Dim Pesquisa3
 Dim Pesquisa4
 Dim Pesquisa5
 If Me.Cod_Dzm.Text <> "" Then
    codigo2 = Cod_Dzm
    Sheets("novo").Select
    Set intervalo1 = Range("a2:l1500")
    Pesquisa3 = Application.WorksheetFunction.VLookup(codigo2, intervalo1, 2, False)
    Pesquisa4 = Application.WorksheetFunction.VLookup(codigo2, intervalo1, 6, False)
    Pesquisa5 = Application.WorksheetFunction.VLookup(codigo2, intervalo1, 8, False)
    Nom_Dizm.Caption = Pesquisa3
    Bai_Dizm.Caption = Pesquisa4
    Set_Dizm.Caption = Pesquisa5
 End If
End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 29/07/2016 6:27 am
(@robertonl)
Posts: 121
Estimable Member
Topic starter
 

Permanece dando erro ainda.

 
Postado : 29/07/2016 3:19 pm
(@robertonl)
Posts: 121
Estimable Member
Topic starter
 

Fiz o procedimento conforme abaixo, não era do jeito como pretendo, porém chegou ao resultado esperado.
Teria como adaptar esta informação sem ter que fazer o procv em uma guia separada;

Private Sub Cod_Dzm_afterupdate()
Sheets("calculo").Range("a1") = CStr(Cod_Dzm)
Nom_Dizm = CStr(Sheets("calculo").Range("b1"))
Bai_Dizm = CStr(Sheets("calculo").Range("c1"))
Set_Dizm = CStr(Sheets("calculo").Range("d1"))

End Sub

 
Postado : 30/07/2016 12:17 pm