Veja como inserir imagens no Excel com VBA ou realizar Procv com Imagens no Excel.
No artigo iremos mostrar três soluções:
- Solução 1: Ao digitar um nome retornar uma imagem à partir de uma pasta.
- Solução 2: Em uma lista retornar várias imagens em uma lista à partir da seleção de um registro, retornando de uma pasta.
- Solução 3: Consultar imagens da web e carregar em uma planilha à partir da seleção de um registro.
Como Carregar Imagem com VBA de Uma Pasta
Nesta solução iremos carregar uma imagem à partir de um nome selecionado em uma lista ou digitado.
Na nossa solução, a primeira necessidade que temos é definir a pasta aonde iremos buscar as imagens.
Nela temos imagens como ana.jpg, ou seja, o nome que digitaremos e .jpg.
Então iremos carregar ela usando VBA para o Excel dinamicamente.
Para isso pressione ALT+F11 ou clique na guia Desenvolvedor e clique em Visual Basic Editor.
Nele clique em Inserir->Módulo e no módulo criado cole o seguinte código:
Public Sub lsCarregar()
On Error Resume Next
Dim Pict
Dim Celula As String
Celula = "C9"
InserirImagens.Shapes("Imagem1").Delete
Pict = PastaLocal.Range("local").Value & "\" & InserirImagens.Range("vendedor").Value & ".jpg"
'Application.ActiveSheet.Shapes.AddPicture Pict, False, True,
InserirImagens.Shapes.AddPicture Pict, False, True, Range(Celula).Left + 3, Range(Celula).Top + 3, 150, 150
InserirImagens.Shapes(InserirImagens.Shapes.Count - 1).Name = "Imagem1"
InserirImagens.Range("c8").Select
End Sub
Em seguida nós incluímos na planilha o código para que ao alterar o texto consultar o código à partir desta pasta.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$8" Then
lsCarregar
End If
End Sub
Carregar Várias Imagens no Excel com VBA
Nesta solução nós temos a inclusão de várias imagens no Excel à partir de linhas com o nome digitado ou selecionado.
Na solução abaixo temos algo parecido com o anterior, mas com a diferença de carregar imagens linha a linha e redimensionar as imagens para inserir na célula da linha automaticamente.
Abaixo o código fonte utilizado, clique em inserir->módulo e no módulo inserido coloque este código:
Public Sub lsCarregarTime(ByVal vCelula As Range)
On Error Resume Next
Dim Pict
Dim Celula As String
Celula = "D" & vCelula.Row
ActiveSheet.Shapes("Imagem" & vCelula.Row).Delete
'Verifica se o arquivo existe
If Dir(PastaLocal.Range("local").Value & "\" & vCelula.Value & ".jpg") <> vbNullString Then
Pict = PastaLocal.Range("local").Value & "\" & vCelula.Value & ".jpg"
time.Shapes.AddPicture Pict, False, True, Range(Celula).Left + 3, Range(Celula).Top + 3, 50, 50
time.Shapes(time.Shapes.Count - 1).Name = "imagem" & vCelula.Row
vCelula.Offset(1).Select
End If
End Sub
E na planilha aonde iremos realizar a inclusão dos dados clique duas vezes sobre a planilha e cole o código abaixo.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 Then
lsCarregarTime Target
End If
End Sub
Inserir Várias Imagens da Web no Excel com VBA
Agora veremos um código para inserir imagens da Web no Excel com VBA.
Então a primeira tarefa é selecionarmos uma imagem e clicarmos com o botão direito e selecionar o arquivo e pegar a extensão toda.
No link abaixo nós temos o endereço da imagem, copie e inclua na planilha.
Então com isso nós temos a tabela pronta com os dados abaixo da imagem e outras informações referentes a elas.
Após isso inserimos uma lista com os nomes e ao selecionar ou digitar a informação é retornada na célula daquela linha.
No VBA pressione ALT+F11 e clique em Inserir->Módulo e insira o código conforme solicitado.
Public Sub lsCarregarOrcamentoWeb(ByVal vCelula As Range)
On Error Resume Next
Dim Pict
Dim Celula As String
Celula = "G" & vCelula.Row
orcamentoweb.Shapes("imagem" & vCelula.Row).Delete
If Range(Celula).Value <> "" Then
Pict = Range(Celula).Value
orcamentoweb.Shapes.AddPicture Pict, False, True, Range(Celula).Left + 3, Range(Celula).Top + 3, 50, 50
orcamentoweb.Shapes(orcamentoweb.Shapes.Count - 1).Name = "imagem" & vCelula.Row
vCelula.Offset(1).Select
End If
End Sub
Após isso clique na planilha aonde iremos retornar as imagens na tabela.
Clique então duas vezes sobre ela e cole o seguinte código.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 Then
lsCarregarOrcamentoWeb Target
End If
End Sub
Download Planilha Exemplo Inserir Imagens VBA Excel
Clique no botão abaixo para realizar o download da planilha de inserir imagens no Excel com VBA, com exemplo de dados: