Exibir imagem ao selecionar célula

Neste post você vai aprender a como exibir imagens sempre que uma célula é selecionada. As imagens aparecem direto na planilha e de acordo com o conteúdo da célula.

A imagem pode ser configurada para aparecer em qualquer posição na tela, além de tamanho e demais configurações de efeitos de imagem. Assim que as células alvo são selecionadas um código VBA é executado, lendo o conteúdo da célula e com base nele exibe a imagem correspondente.

As imagens não ficam salvas dentro do arquivo Excel, o que mantém a leveza do mesmo. As imagens ficam em uma pasta separada no computador e são carregadas pra dentro do Excel somente quando necessário.

O vídeos a baixo explica todo o funcionamento do código. Além disso você pode baixar o arquivo utilizado no vídeo, neste caso um arquivo zipado contendo não só a planilha mas uma pasta com algumas imagens, basta descompactar e sair testando direto que as imagens já serão exibidas.


Código VBA para exibir imagem na célula

Assista ao vídeo para saber como implementar o código e compreender todas as etapas do mesmo.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 On Error Resume Next
 
 If Target.Column = 3 And Target.Row > 6 And Target.Value <> "" Then
 Me.Shapes.Range(Array("Foto")).Delete
 
 Dim FullImagePath As String
 
 FullImagePath = ThisWorkbook.Path & "\Imagens\" & Target.Value & ".jpg"
 If Dir(FullImagePath) = "" Then
 FullImagePath = ThisWorkbook.Path & "\Imagens\" & Target.Value & ".jpeg"
 If Dir(FullImagePath) = "" Then
 FullImagePath = ThisWorkbook.Path & "\Imagens\" & Target.Value & ".png"
 If Dir(FullImagePath) = "" Then Exit Sub
 End If
 End If
 
 Me.Pictures.Insert(FullImagePath).Select
 With Selection
 .Name = "Foto"
 .Left = 275
 .Height = 100
 .ShapeRange.Shadow.Type = msoShadow21 'Adciona sombra
 End With
 
 Target.Activate
 Else
 Me.Shapes.Range(Array("Foto")).Delete
 End If
 
End Sub

Arquivo demo para download

O arquivo está zipado, contendo não só a planilha mas uma pasta com algumas imagens, basta descompactar e sair testando direto que as imagens já serão exibidas.


Acompanhe o Função Excel
facebook-logo youtube-logo googleplus-logo twitter-logo

E aí, o que achou?