segunda-feira, 5 de agosto de 2013

Carregando gráfico em formulário do excel - VBA

Video Aula 02 -  Carregando gráfico em formulário do excel - VBA


Videoaula descreve passo a passo como carregar um gráfico em formulário do excel com utilização de código VBA,

segue código... 

Private Sub UserForm_Initialize() 
Set CurrentChart = Sheets("Plan1").ChartObjects(1­).Chart 
CurrentChart.Parent.Width = 200 
CurrentChart.Parent.Height = 200 

'converter objeto de gráfico em imagem gif 

nome = ThisWorkbook.Path & Application.PathSeparator & "temp.gif" 
CurrentChart.Export Filename:=nome, filtername:="GIF" 

' mostrar grafico como imagem no objeto 

image1 Image1.Picture = LoadPicture(nome)

 End Sub


COMPLEMENTO: Foi adicionado ao formulário uma combobox, responsável pela seleção dos gráficos.
Da seguinte forma... primeiro foram adicionados 3 gráficos na Plan2 conforme imagem...


Depois clicamos na guia desenvolvedor > Visual Basic e adicionamos um Formulário conforme figura...

adicionamos dois objetos, uma caixa de Listagem ou  Combobox e uma Caixa de Imagem ou simplesmente Image. Em vermelho os nomes dos objetos que devem ser inseridos na propriedade dos objetos...
 Dando um duplo clique no objeto cmb_grafico adicionamos o seguinte código:

Private Sub cmb_grafico_Click()

If cmb_grafico = "Grafico 01" Then 'faz o teste lógico e insere o gráfico respectivo ao objeto image1

Set CurrentChart = Sheets("Plan2").ChartObjects(1).Chart 'O número 1 se refere ao primeiro grafico inserido na plan2
CurrentChart.Parent.Width = 300
CurrentChart.Parent.Height = 200
'converter objeto de gráfico em imagem gif
nome = ThisWorkbook.Path & Application.PathSeparator & "temp.gif"
CurrentChart.Export Filename:=nome, filtername:="GIF"
' mostrar grafico como imagem no objeto image1
Image1.Picture = LoadPicture(nome)

ElseIf cmb_grafico = "Grafico 02" Then

Set CurrentChart = Sheets("Plan2").ChartObjects(2).Chart
CurrentChart.Parent.Width = 300
CurrentChart.Parent.Height = 200
'converter objeto de gráfico em imagem gif
nome = ThisWorkbook.Path & Application.PathSeparator & "temp.gif"
CurrentChart.Export Filename:=nome, filtername:="GIF"
' mostrar grafico como imagem no objeto image1
Image1.Picture = LoadPicture(nome)

Else

Set CurrentChart = Sheets("Plan2").ChartObjects(3).Chart
CurrentChart.Parent.Width = 300
CurrentChart.Parent.Height = 200
'converter objeto de gráfico em imagem gif
nome = ThisWorkbook.Path & Application.PathSeparator & "temp.gif"
CurrentChart.Export Filename:=nome, filtername:="GIF"
' mostrar grafico como imagem no objeto image1
Image1.Picture = LoadPicture(nome)

End If

End Sub

O seguinte código é adicionado dando um duplo clique em qualquer área livre do Userform e mudando-se o Procedimento de Click para Initiaze...

Private Sub UserForm_Initialize()

cmb_grafico.AddItem ("Grafico 01")
cmb_grafico.AddItem ("Grafico 02")
cmb_grafico.AddItem ("Grafico 03")

End Sub

O formulário funcionando deve ficar da seguinte forma...


Link para Download da planilha: compartilhado via Google Drive

https://docs.google.com/file/d/0B2tBlpeZsUSZVnhCUjhfT0ZTdDg/edit?usp=sharing


Um comentário:

  1. Funcionou perfeito até eu compartilhar a planilha ae de ERRO :/ . Sabe oque seria?

    ResponderExcluir