Notifications
Clear all

Macro inserir imagens

6 Posts
2 Usuários
0 Reactions
1,851 Visualizações
(@odilojr)
Posts: 21
Eminent Member
Topic starter
 

Boa tarde Pessoal,
Estou precisando da seguinte macro:
Tenho uma planilha onde na coluna A estão os nomes das minha imagens (.jpg) (144 arquivos - linha a1 até a144).
Nome das imagens: imagem1, imagem2....imagem144
E na coluna B preciso de uma macro que procure pelo nome na coluna A no diretório C:Imagens e cole a imagem na coluna B.

Agradeço pela ajuda e disposição.
Obrigado!!!!

 
Postado : 11/04/2016 11:11 am
(@adgere)
Posts: 76
Trusted Member
 
Sub CarregaImg()

Dim img  As String
Dim ht   As Double
Dim wt   As Double
Dim lt   As Double
Dim tp   As Double
Dim l    As Integer
Dim fs
Set fs = CreateObject("Scripting.FileSystemObject")

    Do
        l = l + 1
        If ActiveSheet.Cells(l, 1).Value = "" Then Exit Do

        img = "C:Imagens" & ActiveSheet.Cells(l, 1).Value
        
        If fs.FileExists(img) Then

            ExcluiImg l

            ActiveSheet.Pictures.Insert(img).Select
    
            With ActiveSheet.Range(ActiveSheet.Cells(l, 2), ActiveSheet.Cells(l, 2))
                 ht = .Height
                 wt = .Width
                 lt = .Left
                 tp = .Top
            End With
             
            Selection.ShapeRange.Name = ActiveSheet.Cells(l, 1).Value
            Selection.ShapeRange.LockAspectRatio = msoFalse
            Selection.ShapeRange.Height = ht
            Selection.ShapeRange.Width = wt
            Selection.ShapeRange.Top = tp
            Selection.ShapeRange.Left = lt
        
        End If
    
    Loop

End Sub

Sub ExcluiImg(l As Integer)
 
   On Error GoTo Sair
 
   ActiveSheet.Shapes.Range(Array("" & ActiveSheet.Cells(l, 1).Value & "")).Delete
   
Sair:

End Sub
 
Postado : 11/04/2016 5:36 pm
(@odilojr)
Posts: 21
Eminent Member
Topic starter
 

Inseri o código mas não funcionou, não aconteceu nada.

 
Postado : 12/04/2016 5:46 am
(@adgere)
Posts: 76
Trusted Member
 

O codigo faz um loop a partir da linha 1 e para se encontrar alguma vazia.
Verifique se a primeira linha esta vazia...

O codigo também verifica se a imagem existe no "C:Imagens" caso nao exista não acontece nada... verifique o nome da imagem (se esta com a extensão, pontuação etc)

Qualquer coisa, envie sua planilha e dou uma olhada.

 
Postado : 12/04/2016 9:29 am
(@odilojr)
Posts: 21
Eminent Member
Topic starter
 

estou enviando a planilha porque não consegui achar o erro, continua não realizando a macro.
Desde já obrigado pela ajuda.

 
Postado : 12/04/2016 10:34 am
(@adgere)
Posts: 76
Trusted Member
 

Duas alternativas:

1-Na coluna A inclua a extensão do arquivo, que ficaria assim:

Imagem1.jpg
Imagem2.jpg
Imagem3.jpg
Imagem4.jpg

OU

2-Se as imagens forem todas da mesma extensão, deixe a coluna A como esta e altere essa linha do codigo:

img = "C:Imagens" & ActiveSheet.Cells(l, 1).Value

Altere para:

img = "C:Imagens" & ActiveSheet.Cells(l, 1).Value & ".jpg" 

Caso a extensão seja jpg, caso seja outra informe a correta.

obs.: Esse codigo irá dimensionar a figura para a largura e altura da celula da coluna B. Caso precise de um resultado diferente exclua essa parte do codigo:

   Selection.ShapeRange.LockAspectRatio = msoFalse
            Selection.ShapeRange.Height = ht
            Selection.ShapeRange.Width = wt
            Selection.ShapeRange.Top = tp
            Selection.ShapeRange.Left = lt
 
Postado : 12/04/2016 2:53 pm