Notifications
Clear all

Erro quando cancela a Caixa de Dialogo

4 Posts
3 Usuários
0 Reactions
886 Visualizações
fcarlosc
(@fcarlosc)
Posts: 453
Honorable Member
Topic starter
 

Boa-noite,

Preciso de uma ajuda com um erro...! Já tentei algumas formas de tratar esse erro com o "On Error GoTo", e não consegui resolver.
Quando eu abro a Caixa de Dialogo e logo em seguida eu clico no botão Cancelar, dá um erro dizendo que o arquivo não foi localizado.

Estou usando o seguinte código para carregar imagem:

Private Sub Image1_Click()

Dim myPictName As String
Dim lLinha As Long

myPictName = Application.GetOpenFilename(filefilter:="Picture Files,*.ico;*.bmp;*.jpg;*.jpeg;*.tif;*.tiff")

If IsNumeric(txtCodigo.Text) = True Then
Set currentFind = Worksheets("shtClientes").Range("A:A").Find(txtCodigo.Text, , _
Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlPart, _
Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlNext, False)

lLinha = ActiveCell.Row
Else
lLinha = Sheets("shtClientes").Cells(Rows.Count, 1).End(xlUp).Row + 1
End If

If myPictName <> "" Then
Me.Image1.Picture = LoadPicture(myPictName)
Image1.PictureSizeMode = fmPictureSizeModeStretch
Image1.Visible = False
Image1.Visible = True
Worksheets("shtClientes").Cells.Range("P" & lLinha).Value = myPictName

End If

End Sub

Se alguém puder ajudar...

Att,

Francisco

 
Postado : 07/08/2016 8:06 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Utilize :

On Error Resume Next

antes da linha :
If IsNumeric(txtCodigo.Text) = True Then

[]s

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

 
Postado : 07/08/2016 9:34 pm
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

FCarlos, boa noite

O erro parece estar no fato em que, quando vc clica em Cancelar, sua string myPictName receberá o valor "Falso" e não um valor " " (vazio). Como ele não encontra nenhum arquivo com esse nome, dará a mensagem que O Arquivo "Falso" não foi localizado.
Então bastaria alterar

If myPictName <> "" Then...

para

If myPictName <> "Falso" Then...

Atenção para o fato de que, se seu Excel for pt-br, use "Falso" mesmo, e não "False" ou "0" no teste condicional acima, já que é uma string (se myPictName fosse uma Variant, aí sim retornaria um Boolean).

 
Postado : 07/08/2016 9:51 pm
fcarlosc
(@fcarlosc)
Posts: 453
Honorable Member
Topic starter
 

Boa-noite EdsonBR e Mauro Coutinho,

A instrução if myPictName <> "" Then...para "Falso", já tinha feito a alteração e tentado de outras formas, mais não deu certo.
O tratamento de erro com o "On Error GoTo Next" também, e era o que quase estava atendendo no evento, só não estava acertando o local.

"On Error GoTo Next" deu certo, agora estou tentando acertar nos botões, primeiro e último, próximo e anterior.

Obrigado aos 2 pela ajuda...!!!

Att,

Francisco

 
Postado : 07/08/2016 10:39 pm