Inserir Imagens no Excel com VBA – Procv com Imagens

Veja como inserir imagens no Excel com VBA ou realizar Procv com Imagens no Excel.

No artigo iremos mostrar três soluções:

  1. Solução 1: Ao digitar um nome retornar uma imagem à partir de uma pasta.
  2. Solução 2: Em uma lista retornar várias imagens em uma lista à partir da seleção de um registro, retornando de uma pasta.
  3. 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.

inserir imagens vba excel 1

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
inserir imagens vba excel 2

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.

inserir imagens vba excel 3

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.

inserir imagens vba excel 4

Então com isso nós temos a tabela pronta com os dados abaixo da imagem e outras informações referentes a elas.

inserir imagens vba excel 5

Após isso inserimos uma lista com os nomes e ao selecionar ou digitar a informação é retornada na célula daquela linha.

inserir imagens vba excel 6

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:

Baixe a planilha


Marcos Rieper

Pai, marido, professor e consultor em Excel.

Obrigado por ler este artigo, este blog foi criado para difundir o conhecimento em Excel à todos.

Divulgamos novos artigos nas redes sociais, basta clicar nos ícones abaixo.

Excel não precisa ser complicado

Assine nossa newsletter e receba dicas práticas para dominar o excel