Notifications
Clear all

VBA Excel - carregar gráficos na Userform

1 Posts
1 Usuários
0 Reactions
877 Visualizações
(@vitors)
Posts: 31
Eminent Member
Topic starter
 

Bom dia,

Preciso de ajuda para solucionar um problema que ando a tentar resolver já a alguns dias.

Tenho duas planilhas “1-A1” e “1-A2” com vários gráficos e criei uma “Userform1” com duas Image - "Image1" e "Image2" e um botão “Next”.

Consegui encontrar um código para carregar os gráficos nas “Image1” e na “Image2” sempre que carrego no botão.

Dim ChartNum As Integer

Private Sub grafico_Initialize()
If ChartNum = 12 Then ChartNum = 1 Else ChartNum = ChartNum + 1
UpdateChart
End Sub

Private Sub UpdateChart()

  Set CurrentChart = Sheets("1-A1").ChartObjects(ChartNum).Chart
  CurrentChart.Parent.Width = 425
  CurrentChart.Parent.Height = 180
  ' Save chart as GIF
  Fname = ThisWorkbook.Path & Application.PathSeparator & "temp.gif"
  CurrentChart.Export Filename:=Fname, FilterName:="GIF"
  
  ' Show the chart
  Image1.Picture = LoadPicture(Fname)
  Me.Image1.PictureSizeMode = fmPictureSizeModeStretch
  
  Set CurrentChart = Sheets("1-A2").ChartObjects(ChartNum).Chart
  CurrentChart.Parent.Width = 425
  CurrentChart.Parent.Height = 180
  ' Save chart as GIF
  Fname = ThisWorkbook.Path & Application.PathSeparator & "temp.gif"
  CurrentChart.Export Filename:=Fname, FilterName:="GIF"
  
  ' Show the chart
  Image2.Picture = LoadPicture(Fname)
  Me.Image2.PictureSizeMode = fmPictureSizeModeStretch
  
End Sub

Private Sub CommandButton6_Click()
  If ChartNum = 12 Then ChartNum = 1 Else ChartNum = ChartNum + 1
  UpdateChart
End Sub

Se eu percorrer cada uma das planilhas para ver os gráficos, o código corre bem. Mas se eu não clicar no botão “Next” sem percorrer primeiro as planilhas, o código dá erro.

Como posso resolver este problema?

Obrigado

Vítor

 
_____________________________________
Editado pela Moderação. Motivo: Procure utilizar o botão Código (< >) sempre que for inserir código VBA ou Fórmulas.
 
Postado : 21/07/2022 9:24 pm