Aprenda como trocar imagens com segmentação de dados no Excel utilizando fórmulas passo-a-passo.
O Excel é uma ferramenta poderosa, não apenas para cálculos e análises de dados, mas também para criar experiências interativas.
Um exemplo avançado e criativo é a troca automática de imagens com base na segmentação de dados. Este recurso pode ser utilizado em dashboards, relatórios e até mesmo em ferramentas de apresentação, trazendo dinamismo e sofisticação ao trabalho.
Neste artigo, vamos mostrar como configurar a troca de imagens usando segmentações de dados no Excel, passo a passo.
Vídeo-Aula Trocar Imagens com Segmentação de Dados no Excel
Assista no vídeo abaixo passo-a-passo como trocar imagens usando segmentação de dados no Excel.
Como Funciona a Troca de Imagens?
O conceito por trás da troca de imagens é simples:
vincular uma segmentação de dados a uma tabela ou intervalo de valores que contenha links para imagens. Ao selecionar um item na segmentação de dados, a imagem correspondente é automaticamente exibida em uma área designada.
Para isso vamos usar:
- Segmentação de dados.
- Tabela dinâmica.
- Intervalo Nomeado
- Função “INDIRETO” e área de imagem vinculada.
- VBA (opcional, para automatização avançada).
Passo-a-passo para Trocar Imagens no Excel
A primeira parte é criar uma tabela ou lista de dados que tenham as informações que serão utilizadas na sua segmentação.
No exemplo abaixo temos uma tabela de exemplo com gerentes, faturamento e a região.
Cadastro de imagens
A segunda parte é criar uma lista com imagens e nomes, estas imagens tem que estar sobre as células e não dentro das células.
Clique em Inserir->Imagens->Colocar sobre Células->Este dispositivo e insira as imagens dentro de cada célula dentro dos limites das células como temos abaixo.
Para inserir as imagens pode ser feito manualmente ou senão com o código VBA abaixo que irá solicitar a pasta e inserir automaticamente as imagens no Excel à partir da célula que estiver selecionada e também colocará o nome de cada uma das imagens.
É importante que o nome que está ao lado da imagem seja exatamente igual ao nome que está na tabela, pois será usado para retornar a imagem ao lado.
Para colocar o código clique na guia Desenvolvedor->Visual Basic e no VBE clicar em Inserir->Módulo e coloque o código abaixo.
Depois, voltando ao Excel clique em Macros e selecione a macro InserirImagensDePastaComEscolha para inserir as imagens.
Código VBA para Inserir Imagens no Excel
Sub InserirImagensDePastaComEscolha()
Dim ws As Worksheet
Dim selectedCell As Range
Dim currentCell As Range
Dim imgFolder As String
Dim imgFile As String
Dim imgName As String
Dim pic As Picture
Dim cellWidth As Double
Dim cellHeight As Double
Dim imgWidth As Double
Dim imgHeight As Double
Dim aspectRatio As Double
Dim folderDialog As FileDialog
' Configurar a planilha e a célula inicial
Set ws = ActiveSheet
Set selectedCell = Selection ' Célula selecionada para começar
Set currentCell = selectedCell
' Abrir diálogo para selecionar a pasta
Set folderDialog = Application.FileDialog(msoFileDialogFolderPicker)
With folderDialog
.Title = "Selecione a pasta de imagens"
.AllowMultiSelect = False
If .Show <> -1 Then Exit Sub ' Se o usuário cancelar, sai da macro
imgFolder = .SelectedItems(1)
End With
' Certificar-se de que o caminho termina com uma barra invertida
If Right(imgFolder, 1) <> "\" Then imgFolder = imgFolder & "\"
' Apagar todas as imagens existentes na planilha
For Each pic In ws.Pictures
pic.Delete
Next pic
' Obter o primeiro arquivo de imagem na pasta
imgFile = Dir(imgFolder & "*.jpg")
' Loop pelas imagens na pasta
Do While imgFile <> ""
' Obter o nome do arquivo sem a extensão
imgName = Left(imgFile, InStrRev(imgFile, ".") - 1)
' Nome da imagem na célula atual
currentCell.Value = imgName
' Inserir a imagem na célula à direita
Set pic = ws.Pictures.Insert(imgFolder & imgFile)
' Dimensões da célula da direita
cellWidth = currentCell.Offset(0, 1).Width
cellHeight = currentCell.Offset(0, 1).Height
' Dimensões originais da imagem
imgWidth = pic.Width
imgHeight = pic.Height
' Calcular a proporção da imagem
aspectRatio = imgWidth / imgHeight
' Ajustar tamanho da imagem para caber na célula mantendo a proporção
If (cellWidth / aspectRatio) <= cellHeight Then
' Ajustar com base na largura da célula
pic.Width = cellWidth
pic.Height = cellWidth / aspectRatio
Else
' Ajustar com base na altura da célula
pic.Height = cellHeight
pic.Width = cellHeight * aspectRatio
End If
' Centralizar a imagem dentro da célula à direita
pic.Left = currentCell.Offset(0, 1).Left + (cellWidth - pic.Width) / 2
pic.Top = currentCell.Offset(0, 1).Top + (cellHeight - pic.Height) / 2
' Avançar para a próxima linha
Set currentCell = currentCell.Offset(1, 0)
' Próximo arquivo de imagem
imgFile = Dir
Loop
End Sub
Além disso selecione uma célula e mude a cor para cinza e escreva vazio ao lado, pois quando não houver imagem ele irá colocar cinza na imagem.
Tabela Dinâmica
Insira uma tabela dinâmica à partir da tabela de dados e também uma segmentação de dados clicando em Inserir->Tabela dinâmica e selecionando os dados.
Em seguida na guia Dados clique em Segmentação de dados e selecione o filtro que deseja, como no caso Região.
Clique com o botão direito e em classificar, classifique do maior pro menor faturamento.
Função para Retornar Imagem no Excel
Em uma célula coloque esta fórmula, considerando na coluna D os valores com os nomes dos vendedores na tabela dinâmica.
=INDIRETO(“Imagens!”&SEERRO(“D”&CORRESP(Cálculos!$B$6;Imagens!$C$1:$C$500;0);”G7”))
Esta fórmula irá retornar de forma indireta a célula que estiver
Em seguida clique em Gerenciador de Nomes e clique em Novo.
No novo nome criado digite primeiro e cole a fórmula =INDIRETO(“Imagens!”&SEERRO(“D”&CORRESP(Cálculos!$B$6;Imagens!$C$1:$C$500;0);”G7”))
Ela irá retornar o primeiro registro da tabela dinâmica.
Faça o mesmo para a segundo e terceiro, mudando apenas a célula pela qual está sendo buscado o nome na tabela de imagens.
Mudar Imagens Dinamicamente com Segmentação de Dados no Excel
Para mudar as imagens com segmentação de dados clique sobre uma das imagens da lista e copie ela.
Cole perto da tabela dinâmica com a segmentação de dados.
Clique sobre a imagem e em fórmulas digite =primeiro.
Isso fará com que seja modificado automaticamente as imagens conforme a segmentação selecionada.
Download Planliha Trocar Imagens com Segmentação de Dados no Excel
Clique no botão abaixo para realizar o download da planilha de mediana no Excel, com exemplo de dados: