Inserir Imagens no Excel com VBA - Procv com Imagens
Especialista em Excel

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:
Principais recursos
Confira o que este material oferece para você.
Perguntas frequentes
O material é realmente gratuito?
Sim. O acesso é gratuito e não exige cadastro.
Preciso ter o Excel instalado?
Recomendamos o Excel 2013 ou superior para todos os recursos.
Como faço para receber atualizações?
As atualizações são automáticas dentro da própria planilha.
Funciona no Excel do Mac?
Sim, funciona no Excel para Windows e para Mac.
Funciona no celular?
É possível visualizar no app do Excel; a edição completa é no computador.
Planilhas relacionadas
Planilha de Fluxo de Caixa
R$ 89,90
Controle de Estoque
R$ 69,90
Planilha Financeira Empresarial
R$ 79,90
Dashboard Financeiro no Excel
R$ 49,90




