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
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!