Página 1 de 1
ERRO RUN-TIME ERROR '5': INVALID PROCEDURE CALL OR ARGUMENTE
Enviado: 30 Mar 2021 às 22:23
por LEO2004
Ola amigos estou com esse erro e não sei como resolver..
Alguem pode me dar uma ajuda
tem uma imagem do erro em anexo e abaixo o código..
Desde já agradeço..
Sub Proc()
Dim codigo_prod As String
Dim ULTLINHA As Integer
Dim Inicio As Integer
Dim result_proc As String
Dim Sefaz As Worksheet
Set Sefaz = Sheets("Sefaz")
ULTLINHA = Sheets("SEFAZ").Cells(Cells.Rows.Count, 1).End(xlUp).Row
For Inicio = 2 To ULTLINHA
With Sefaz
codigo_prod = Sheets("SEFAZ").Cells(Inicio, 21).Value
.Cells(Inicio, 22).Value = Application.WorksheetFunction.VLookup(codigo_prod, Sheets("C100").Range("K:L"), 2, False)
'Sheets("SEFAZ").Cells(Inicio, 22).Value = result_proc
End With
Next Inicio
End Sub
Re: ERRO RUN-TIME ERROR '5': INVALID PROCEDURE CALL OR ARGUMENTE
Enviado: 31 Mar 2021 às 09:45
por LEO2004
Identifiquei o problema;
o que esta acontecendo e que quando ele não encontra o valor procurado ele da esse erro..
porém preciso que retorne algo na celula como alguma mensagem ou algo do tipo..
tente fazer isso, colocando "if IsError" mas também não deu:
Sub Proc()
Dim codigo_prod As Variant
Dim ULTLINHA As Integer
Dim Inicio As Integer
Dim result_proc As Variant
ULTLINHA = Sheets("Sefaz").Cells(Cells.Rows.Count, 1).End(xlUp).Row
For Inicio = 2 To ULTLINHA
codigo_prod = Sheets("Sefaz").Cells(Inicio, 21).Value
Sheets("Sefaz").Cells(Inicio, 22).Value = "NF não Lançada"
result_proc = Application.VLookup(codigo_prod, Sheets("C100").Range("K:L"), 2, False)
If IsError(result_proc) Then
Sheets("Sefaz").Cells(Inicio, 22).Value = "NF não Lançada"
Else
Sheets("Sefaz").Cells(Inicio, 22).Value = result_proc
End If
Next Inicio
End Sub
Re: ERRO RUN-TIME ERROR '5': INVALID PROCEDURE CALL OR ARGUMENTE
Enviado: 31 Mar 2021 às 10:08
por luizpaps
Eu copiei seu código em uma pasta de trabalho nova e criei duas planilhas com os nomes SEFAZ e C100 na planilha SEFAZ na coluna 21 eu coloquei os dados A B e C em 3 linhas. Na planilha C100 eu criei na coluna k linhas com dados de "A" até "O" e na coluna L coloquei dados de 0 a 100 e executei seu código, ele buscou certinho os dados referentes aos itens da coluna 21 da planilha SEFAZ.
não sei se fui claro, mas sua macro não tem nenhum erro
anexei a planilha de exemplo que fiz com sua macro
Re: ERRO RUN-TIME ERROR '5': INVALID PROCEDURE CALL OR ARGUMENTE - RESOLVIDO
Enviado: 31 Mar 2021 às 11:48
por LEO2004
Bom dia luizpaps,
Muito obrigado pelo seu retorno..
Eu consegui ajustar aqui, o problema é meu cliente não possui Excel e sim WPS "afff"...
Dai alguns códigos eu preciso desenvolver de uma maneira que o WPS entenda, isso que esse possui uma biblioteca praticamente quase 100% compatível com o VB do Excel..
Desabafos a parte kkkk
Precisei fazer um tratamento do retorno dos valores não encontrados.. com um "On Error Resume Next" antes do processamento do codigo e um "If Err.Number <> 0 " para impor uma condição a esse retorno nulo..
Por fim consegui..
Fica ai para quem tiver o mesmo problema que o meu..
E obrigado mais uma vez..luizpaps
Dim codigo_prod As Variant
Dim ULTLINHA As Integer
Dim Inicio As Integer
Dim result_proc As Variant
Inicio = 2
ULTLINHA = Sheets("Sefaz").Cells(Cells.Rows.Count, 1).End(xlUp).Row
For Inicio = 2 To ULTLINHA
codigo_prod = Sheets("Sefaz").Cells(Inicio, 21).Value
On Error Resume Next
result_proc = Application.VLookup(codigo_prod, Sheets("C100").Range("K:L"), 2, False)
If Err.Number <> 0 Then
Err.Clear
Else
Sheets("Sefaz").Cells(Inicio, 22).Value = result_proc
End If
Next Inicio
Consegui