Notifications
Clear all

Imagem Variável 2 Form

2 Posts
1 Usuários
0 Reactions
994 Visualizações
(@eltonpaulo)
Posts: 31
Trusted Member
Topic starter
 

Amigos, tenho a seguinte situação:

O código 1 (abaixo), quem me ensinou foi o parceiro do Fórum @Mauro Coutinho. Ele define uma pasta de trabalho para as imagens dos meus formulários, porém, atua na planilha em si.

O código 2, funciona dentro da Form, clicando-se no botão "pesquisar", ele puxa a imagem de acordo com o código pesquisado.

O que eu preciso fazer? Preciso que o código 2 funcione como o código 1, buscando o caminho na pasta "fotos" que fica no mesmo diretório do arquivo (tendo em vista que uso em outros computadores) e não no diretório completo (c:userteste...fotos). Tentei de todo o jeito que conhecia mas não consegui fundir os dois códigos para a adaptação. Alguém pode me dar uma força nisso?

Muito obrigado mais uma vez.

Código 1

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim pasta
    Dim NomeDaFoto
    Dim CaminhoCompleto
    Dim imgfoto11
    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
    
    'Limpa a Imagem anterior
    Sheets("FICHA").imgfoto11.Picture = LoadPicture()
    
    '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
    'Caminho da Pasta Fotos
    
    'Captura o caminho em que o "xlsm" está e concatena com a pasta "fotos"
    pasta = ThisWorkbook.Path & "fotos"
    
    'Nome da Foto sem a extensão
    NomeDaFoto = Range("H1").Value
    
    'Montamos o cainho completo
    CaminhoCompleto = pasta & NomeDaFoto & ".jpg"

    On Error Resume Next
    sfoto = LoadPicture(CaminhoCompleto)
    
    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("0")
            
        Exit Sub
        
        Else
                 sfoto = Range("H1").Value
            Sheets("FICHA").imgfoto11.Picture = LoadPicture(CaminhoCompleto)
        End If
    End If
    
End Sub

Código 2

Private Sub PESQUISAR_Click()

Dim LocalImagens As String

EDITAR.Enabled = True

CODIGO.Enabled = True
LabelCriterio.Caption = "PESQUISANDO"

SITUACAO = Empty

Plan11.Select



With Worksheets("BD").Range("A:A")


Set Buscar = .Find(CODIGO.Value, LookIn:=xlValues, Lookat:=xlPart)

If Not Buscar Is Nothing Then

Buscar.Activate
CODIGO.Value = Buscar.Value

LocalImagens = Buscar.Offset(0, 42).Value
On Error Resume Next
Me.Image_Cliente.Picture = LoadPicture(LocalImagens)


SITUACAO.Value = Buscar.Offset(0, 1).Value
NOME.Value = Buscar.Offset(0, 2).Value

Else

MsgBox "Nenhum dado referente a pesquisa foi encontrado!", vbInformation, "AVISO"


End If
End With

End Sub
 
Postado : 19/07/2017 10:46 pm
(@eltonpaulo)
Posts: 31
Trusted Member
Topic starter
 

Pessoal, preparei um exemplo para vocês me auxiliarem. Preciso muito disso funcionando.

Neste exemplo é possível ver o código funcionando perfeitamente na Sheet "FICHA". Varie o código entre 1 e 2 e poderá ver a imagem ser substituída - lembrando que o caminho da imagem está para a pasta "fotos", que acompanha este anexo.

Meu problema está no Form (Alt+F11) "CADASTRO DE MEMBROS". Tanto na seleção da imagem quanto na hora de pesquisar a imagem eu só consigo visualizá-la se for pelo caminho completo do arquivo e não da forma que está na Sheet "FICHA".

Preciso que o código do form "CADASTRO DE MEMBROS" comporte-se como o da "FICHA", trabalhando diretamente com a pasta (diretório) "FOTOS" e exibindo a imagem na hora da consulta (se cadastrar diretamente pelo form tudo funciona, mas o caminho fica completo, tipo c:user...).

Será que consegui ser mais claro? kkkk Preciso fundir esses dois.

PS: Na Sheet BD, tem uma coluna chamada FOTO. Pelo código da sheet "FICHA", o arquivo é buscado apenas com o seu nome. Neste exemplo "0" e "1".

Obrigado gente!

 
Postado : 24/07/2017 9:45 pm