Notifications
Clear all

Macro para ajustar a foto em suas respectivas células

16 Posts
4 Usuários
0 Reactions
3,418 Visualizações
(@jairfran)
Posts: 0
New Member
Topic starter
 

Bom dia pessoal, tenho uma planilha onde tenho vários quadros para ajustar as fotos, gostaria de saber como eu faço para:

Caso eu digite no quadro o número "1" esse quadro me fornece a foto com o nome "1" e assim respectivamente, "2", "3", ...Etc

Gostaria que as fotos ficassem ajustadas do mesmo tamanha do quadrado.

Lembro que a localização da minhas fotos estão no mesmo endereço do meu arquivo.

Em anexo a planilha!

 
Postado : 09/02/2018 12:55 pm
(@xlarruda)
Posts: 0
New Member
 

Talvez isso possa te ajudar...

http://www.minhasplanilhas.com.br/procv-com-imagem-no-excel/

 
Postado : 09/02/2018 1:09 pm
(@jairfran)
Posts: 0
New Member
Topic starter
 

Não seria bem isso Xlarruda, mas muito obrigado pela ajuda!

 
Postado : 09/02/2018 1:27 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Uma possibilidade

 
Postado : 09/02/2018 3:03 pm
(@klarc28)
Posts: 0
New Member
 

Veja o que acontece quando aperto o botão Habilitar Conteúdo:

 
Postado : 10/02/2018 10:06 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Ops!! anexei o arquivo errado. Editado e alterado.
Obrigado

 
Postado : 10/02/2018 3:24 pm
(@jairfran)
Posts: 0
New Member
Topic starter
 

Uma possibilidade

Reinaldo, muito obrigado por ajudar. A única questão que ainda não funcionou foi redimensionar a imagem e enviá-la para seu quadro em referência! A imagem é inserida e redimensionada, porém fica em uma localização qualquer da planilha!

 
Postado : 14/02/2018 10:17 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Uma possibilidade

Reinaldo, muito obrigado por ajudar. A única questão que ainda não funcionou foi redimensionar a imagem e enviá-la para seu quadro em referência! A imagem é inserida e redimensionada, porém fica em uma localização qualquer da planilha!

Jair, troque a rotina que o Reinaldo postou pela a abaixo, é a mesma, só fiz alguns ajustes, teste e veja se é isto :

Sub IncluiImg()
    Dim YourPic As Picture
    Dim sPath As String, sDir As String
    Dim myPic As Variant
    Dim Celula As String
    
    sPath = ThisWorkbook.Path
    'Acrescenta "" ao caminho se necessario
    If Right(sPath, 1) <> "" Then
        sPath = sPath & ""
    Else
        sPath = sPath
    End If
    
    'Altera o diretorio de "trabalho" para o caminho sPath
    ChDir sPath
    
    For x = 8 To 200 Step 14
    
        If Cells(x, 2) <> "" Then
            
            'Armazenamos o endereço da celula a inserir a foto
            Celula = Cells(x, 2).Address(0, 0)
            
            sDir = Dir(sPath & Cells(x, 2) & ".jpg", vbArchive)
                If sDir <> "" Then
                    
                    With ActiveSheet.Range(Celula)
                        .Select
                        
                        'Inserimos a foto
                        Set YourPic = .Parent.Pictures.Insert(sDir)
                            
                            'Definimos o local a ser inserido de acordo com as
                            'coordenadas da Celula
                            YourPic.Top = Range(Celula).Top
                            YourPic.Left = Range(Celula).Left
                            YourPic.ShapeRange.LockAspectRatio = msoFalse
            
                    'Altera as dimensões da imagem para o quadrado  podendo "distorcer" a imagem
                            YourPic.ShapeRange.Height = 150.22
                            YourPic.ShapeRange.Width = 229.61
                    End With
                End If
            
            If Cells(x, 7) <> "" Then
                
                'Armazenamos o endereço da celula a inserir a foto
                Celula = Cells(x, 7).Address(0, 0)
                
                sDir = Dir(sPath & Cells(x, 7) & ".jpg", vbArchive)
                
                If sDir <> "" Then
                    With ActiveSheet.Range(Celula)
                        .Select
                        
                        'Inserimos a foto
                        Set YourPic = .Parent.Pictures.Insert(sDir)
                        
                        'Definimos o local a ser inserido de acordo com as
                        'coordenadas da Celula
                        YourPic.Top = Range(Celula).Top
                        YourPic.Left = Range(Celula).Left
                        YourPic.ShapeRange.LockAspectRatio = msoFalse
                        
                        YourPic.ShapeRange.Height = 150.22
                        YourPic.ShapeRange.Width = 229.61
                        
                    End With
                End If
            End If
        End If
    Next
    
End Sub

[]s

 
Postado : 14/02/2018 11:09 am
(@jairfran)
Posts: 0
New Member
Topic starter
 

Sr. Mauro, a foto continua na posição incorreta, conforme print abaixo:

 
Postado : 14/02/2018 12:46 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Pra mim funcionou corretamente, você fez alguma alteração no layout ?

 
Postado : 14/02/2018 12:56 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Se não conseguir, envie o seu modelo com a macro inserida para uma analise melhor.

[]s

 
Postado : 14/02/2018 1:02 pm
(@jairfran)
Posts: 0
New Member
Topic starter
 

Não, Sr. Mauro, poderia anexar sua planilha pra mim? :D Ficaria muito grato! Pode ser que eu tenha feito algo errado na hora de trocar os códigos... :/

 
Postado : 14/02/2018 1:35 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Segue o exemplo baseado no seu modelo:

[]s

 
Postado : 14/02/2018 1:57 pm
(@jairfran)
Posts: 0
New Member
Topic starter
 

Sr. Mauro, não consigo :cry: :cry: :cry: :cry: :cry: :cry: ... abaixo o print de como está ficando!

Eu apenas apertei o botão para executar a macro!

 
Postado : 14/02/2018 2:35 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Muito estranho, testei em seu primeiro exemplo com a rotina que enviei, depois com a revisão efetuada pelo colega Mauro e ambas executaram sem problemas.
Qual a versão do seu excel?
Execute a rotina em modo de depuração, passo a passo e verifique o que ocorre a cada comando

 
Postado : 14/02/2018 4:50 pm
Página 1 / 2