Efeito Trocar Gráfico ao Passar o Mouse no Excel
Especialista em Excel

Neste artigo você aprenderá como realizar um efeito no Excel que ao passar o mouse troque os gráficos.
MouseMove Excel VBA Exemplo
O evento MouseMove tem por finalidade efetuar uma ação quando o mouse é movido sobre algum determinado objeto.
No nosso caso o objeto que inserimos no Excel foi um objeto do tipo Rótulo, ou TextBox.
Para isso primeiro clique na guia Desenvolvedor (Como habilitar a guia desenvolvedor)

Clicando sobre o objeto acima desenhe ele sobre uma parte que deseja que ao passar o mouse ele mude o gráfico.
No nosso exemplo colocamos isso sobre os meses como temos abaixo e sobre as imagens de gráfico de linhas e gráfico de barras.

Cada um destes objetos irá executar um código VBA diferente.
Clique em Propriedades e mude o nome de cada objeto como por exemplo criamos lblComparacao, lblMesAnterior e lblMesAtual.
Após isso clique sobre o objeto criado clicando duas vezes e coloque o seguinte código abaixo, eles serão executados ao passar o mouse sobre os objetos.
Private Sub lblComparacao_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
lsComparacao
End Sub
Private Sub lblMesAnterior_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
lsMesAnterior
End Sub
Private Sub lblMesAtual_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
lsMesAtual
End Sub
Preparar os Gráficos
No exemplo deste artigo temos a comparação de vendas diárias do mês anterior e novo, comparando os meses e indicando a diferença entre eles.

O objetivo é mostrar estes dados diários dia-a-dia comparando as informações em gráficos de linha ou barras, comparando ou apenas exibindo um dos meses.

Após isso crie os gráficos para cada uma das situações e sobreponha-os.
Sobre cada gráfico clique e mude o nome deles, clicando na guia Desenvolvedor e no botão Propriedades, nele mude a propriedade Name, conforme o gráfico que desejar.
Mude estes nomes nos códigos que criamos no Código VBA na próxima sessão do artigo.
Código VBA para Mudar o Gráfico
Em seguida clique na guia Desenvolvedor e no botão Visual Basic.
Em seguida clique em Inserir->Módulo e no módulo criado.
Global lstrTipo As String
Global lstrSelecionado As String
Sub lsComparacao()
If lstrTipo = "" Then
ActiveSheet.Shapes.Range(Array("mesatual")).Visible = msoFalse
ActiveSheet.Shapes.Range(Array("mesanterior")).Visible = msoFalse
ActiveSheet.Shapes.Range(Array("comparacao")).Visible = msoTrue
ActiveSheet.Shapes.Range(Array("mesatual2")).Visible = msoFalse
ActiveSheet.Shapes.Range(Array("mesanterior2")).Visible = msoFalse
ActiveSheet.Shapes.Range(Array("comparacao2")).Visible = msoFalse
Else
ActiveSheet.Shapes.Range(Array("mesatual")).Visible = msoFalse
ActiveSheet.Shapes.Range(Array("mesanterior")).Visible = msoFalse
ActiveSheet.Shapes.Range(Array("comparacao")).Visible = msoFalse
ActiveSheet.Shapes.Range(Array("mesatual2")).Visible = msoFalse
ActiveSheet.Shapes.Range(Array("mesanterior2")).Visible = msoFalse
ActiveSheet.Shapes.Range(Array("comparacao2")).Visible = msoTrue
End If
lstrSelecionado = "Comparacao"
End Sub
Sub lsMesAtual()
If lstrTipo = "" Then
ActiveSheet.Shapes.Range(Array("mesatual")).Visible = msoTrue
ActiveSheet.Shapes.Range(Array("mesanterior")).Visible = msoFalse
ActiveSheet.Shapes.Range(Array("comparacao")).Visible = msoFalse
ActiveSheet.Shapes.Range(Array("mesatual2")).Visible = msoFalse
ActiveSheet.Shapes.Range(Array("mesanterior2")).Visible = msoFalse
ActiveSheet.Shapes.Range(Array("comparacao2")).Visible = msoFalse
Else
ActiveSheet.Shapes.Range(Array("mesatual")).Visible = msoFalse
ActiveSheet.Shapes.Range(Array("mesanterior")).Visible = msoFalse
ActiveSheet.Shapes.Range(Array("comparacao")).Visible = msoFalse
ActiveSheet.Shapes.Range(Array("mesatual2")).Visible = msoTrue
ActiveSheet.Shapes.Range(Array("mesanterior2")).Visible = msoFalse
ActiveSheet.Shapes.Range(Array("comparacao2")).Visible = msoFalse
End If
lstrSelecionado = "Atual"
End Sub
Sub lsMesAnterior()
If lstrTipo = "" Then
ActiveSheet.Shapes.Range(Array("mesatual")).Visible = msoFalse
ActiveSheet.Shapes.Range(Array("mesanterior")).Visible = msoTrue
ActiveSheet.Shapes.Range(Array("comparacao")).Visible = msoFalse
ActiveSheet.Shapes.Range(Array("mesatual2")).Visible = msoFalse
ActiveSheet.Shapes.Range(Array("mesanterior2")).Visible = msoFalse
ActiveSheet.Shapes.Range(Array("comparacao2")).Visible = msoFalse
Else
ActiveSheet.Shapes.Range(Array("mesatual")).Visible = msoFalse
ActiveSheet.Shapes.Range(Array("mesanterior")).Visible = msoFalse
ActiveSheet.Shapes.Range(Array("comparacao")).Visible = msoFalse
ActiveSheet.Shapes.Range(Array("mesatual2")).Visible = msoFalse
ActiveSheet.Shapes.Range(Array("mesanterior2")).Visible = msoTrue
ActiveSheet.Shapes.Range(Array("comparacao2")).Visible = msoFalse
End If
lstrSelecionado = "Anterior"
End Sub
Public Sub lsBarras()
'Muda o tipo para barras
lstrTipo = "barras"
'Seleciona o gráfico
If lstrSelecionado = "Comparacao" Then
lsComparacao
Else
If lstrSelecionado = "Atual" Then
lsMesAtual
Else
lsMesAnterior
End If
End If
End Sub
Public Sub lsLinhas()
'Muda o tipo para barras
lstrTipo = ""
'Seleciona o gráfico
If lstrSelecionado = "Comparacao" Then
lsComparacao
Else
If lstrSelecionado = "Atual" Then
lsMesAtual
Else
lsMesAnterior
End If
End If
End Sub
Explicando o Efeito Trocar o Gráfico ao Passar o Mouse no Excel
Por fim temos então o seguinte efeito, que faz com que os códigos sejam acionados ao passar o mouse sobre os objetos de Rótulo inseridos.
Cada um deles oculta os gráficos anteriores deixando exibido apenas o gráfico relativo aquele rótulo.
Esse código pode também ser adaptados para outras situações que queira que ocorra algo ao passar o mouse, como por exemplo criar caixas de explicação ou mostrar imagens.

Download Planilha Efeito Trocar Gráfico ao Passar o Mouse no Excel
Clique no botão abaixo para realizar o download do Excel de exemplo:
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




