Notifications
Clear all

Condicional de em branco e não encontrado

7 Posts
2 Usuários
0 Reactions
1,888 Visualizações
(@eltonpaulo)
Posts: 31
Eminent Member
Topic starter
 

Pessoal, estou montando umas fichas de membro e ao selecionar um código de membro, puxa a imagem sem problemas (uma caixa activeX). Até aí tudo bem, mas quando não encontra a imagem ou está em branco a célula do caminho da imagem da aquele velho erro de depuração. Como faço para criar uma condicional no código abaixo que em caso de não encontrar a imagem buscada retorne uma foto padrão?

Tem um anexo para exemplificar. O problema ocorre na aba "FICHA"

Agradeço desde já.

Private Sub Worksheet_Change(ByVal Target As Range)


'Lembrando que target é a referência para a célula modificada

'verifica se a célula que contém o número do cliente foi modificada
'Nesse caso é a célula B1
If Target.Row = 3 And Target.Column = 3 Then


'Carrega imagem de acordo com o caminho indicado na procura vertical
'A função LoadPicture carrega um caminho de imagem na propriedade Picture
'O seu uso é necessário
imgfoto11.Picture = LoadPicture(Range("H1").Value)


End If


End Sub
 
Postado : 14/07/2017 10:18 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Troque pela rotina abaixo e veja se é isto,lembrando que tem de ajustar o caminho e nome da imagem padrão.

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim sfoto
    'Lembrando que target é a referência para a célula modificada
    
    'verifica se a célula que contém o número do cliente foi modificada
    'Nesse caso é a célula B1
    If Target.Row = 3 And Target.Column = 3 Then
    
    'Carrega imagem de acordo com o caminho indicado na procura vertical
    'A função LoadPicture carrega um caminho de imagem na propriedade Picture
    'O seu uso é necessário
    
    On Error Resume Next
        sfoto = LoadPicture(Range("H1").Value)
        
        If sfoto <> "Falso" Then
            
            'Nesta linha, se o caminho ou a foto não existirem
            'carrega a foto padrão e sai da rotina
            'Lembre-se de ajustar este caminho e nome da foto
            imgfoto11.Picture = LoadPicture("Caminho da foto Padrao")
            
        Exit Sub
        
        Else
            imgfoto11.Picture = LoadPicture(Range("H1").Value)
        End If
        
    End If

End Sub

[]s

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

 
Postado : 15/07/2017 5:26 am
(@eltonpaulo)
Posts: 31
Eminent Member
Topic starter
 

Irmão, tentei alterar de todo o jeito que conhecia, mas esta rotina está só apresentando o "falso", a imagem verdadeira não altera. :| Alguma coisa que eu possa fazer? Já está meio caminho andado rs

 
Postado : 15/07/2017 10:00 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Irmão, tentei alterar de todo o jeito que conhecia, mas esta rotina está só apresentando o "falso", a imagem verdadeira não altera. :| Alguma coisa que eu possa fazer? Já está meio caminho andado rs

elton, na pressa, não cheguei a testar e não percebi que coloquei a condição como "Falso" em vez de VAZIA, altere para a seguinte :

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim sfoto As String
    'Lembrando que target é a referência para a célula modificada
    
    'verifica se a célula que contém o número do cliente foi modificada
    'Nesse caso é a célula B1
    If Target.Row = 3 And Target.Column = 3 Then
    
    'Carrega imagem de acordo com o caminho indicado na procura vertical
    'A função LoadPicture carrega um caminho de imagem na propriedade Picture
    'O seu uso é necessário
    On Error Resume Next
        sfoto = LoadPicture(Range("H1").Value)
        
        If sfoto = "" Then
            
            'Nesta linha, se o caminho ou a foto não existirem
            'carrega a foto padrão e sai da rotina
            'Lembre-se de ajustar este caminho e nome da foto
            imgfoto11.Picture = LoadPicture("Caminho da foto Padrao")
            
        Exit Sub
        
        Else
            imgfoto11.Picture = LoadPicture(sfoto)
        End If
        
    End If

End Sub

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

 
Postado : 15/07/2017 10:01 pm
(@eltonpaulo)
Posts: 31
Eminent Member
Topic starter
 

Ainda não, infelizmente... Continua igual

A continuação do problema está neste tópico que vc está me ajudando também. viewtopic.php?f=10&t=25380

 
Postado : 15/07/2017 10:10 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Acrescenta a seguinte linha após o "Else"

sfoto = Range("H1").Value

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

 
Postado : 15/07/2017 10:33 pm
(@eltonpaulo)
Posts: 31
Eminent Member
Topic starter
 

Nunca saberia disso rsrs. Muito obrigado por compartilhar!!! :mrgreen:

 
Postado : 15/07/2017 10:41 pm