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