Página 1 de 1

On Error - Ajuda

Enviado: 25 Abr 2022 às 21:30
por LeoHenrique
Boa noite pessoal !

O código abaixo, procura no caminho abaixo, as fotos dos calçados pelo número da referência, mas quando o número do calçado não é localizado, dá a mensagem = (Ocorreu um erro ao importar este ficheiro. \\192.168.0.183\arquivo\....)
Gostaria que o código não desse o erro e que pulasse caso não localizar. Já pesquisei e tentei de tudo, se alguém puder ajudar agradeço.



Sub InsereRedimensionaFotos()

Dim r As Range, sPath As String, shp As Shape
For Each r In Range("B7:B" & Cells(Rows.Count, 2).End(3).Row)
sPath = "\\192.168.0.183\arquivo\Comercial\Usuários\Leandro\Fotos\" & r.Value & ".jpg"
On Error Resume Next
Set shp = ActiveSheet.Shapes.AddPicture(sPath, False, True, _
r.Offset(, 1).Left + r.Offset(, 1).Width * 0.05, _
r.Offset(, 1).Top + r.Offset(, 1).Height * 0.1, _
r.Offset(, 1).Width * 0.9, r.Offset(, 1).Height * 0.8)
On Error GoTo 0
Next r
End Sub

Re: On Error - Ajuda

Enviado: 25 Abr 2022 às 23:45
por osvaldomp
Experimente substituir o trecho abaixo
Código: Selecionar todos
On Error Resume Next
Set shp = ActiveSheet.Shapes.AddPicture(sPath, False, True, _
r.Offset(, 1).Left + r.Offset(, 1).Width * 0.05, _
r.Offset(, 1).Top + r.Offset(, 1).Height * 0.1, _
r.Offset(, 1).Width * 0.9, r.Offset(, 1).Height * 0.8)
On Error GoTo 0
#
por este
Código: Selecionar todos
If Len(Dir(sPath)) <> 0 Then
 Set shp = ActiveSheet.Shapes.AddPicture(sPath, False, True, _
 r.Offset(, 1).Left + r.Offset(, 1).Width * 0.05, _
 r.Offset(, 1).Top + r.Offset(, 1).Height * 0.1, _
 r.Offset(, 1).Width * 0.9, r.Offset(, 1).Height * 0.8)
End If

Re: On Error - Ajuda

Enviado: 26 Abr 2022 às 07:48
por LeoHenrique
Bom dia Osvaldo !! Muito obrigado novamente !! Top demais !! Se puder explicar o que cada linha faz, ficarei grato !!

Re: On Error - Ajuda

Enviado: 26 Abr 2022 às 09:21
por osvaldomp
Olá, @LeoHenrique .

O comando On Error não produz efeitos no caso de localização e abertura de arquivos.

O comando que eu passei (If Len(Dir(sPath)) <> 0 Then) verifica se o arquivo antes especificado existe no caminho indicado. Se existe então abre, se não, então não tenta abrir o arquivo e a execução vai direto ao End If.