ich erstelle mit u.a. VBA-Code ein Diagramm. Die Datenreihe wird entsprechend von 2 ComboBoxen festgelegt. Dann wird das Diagramm erstellt und in der Form dargestellt.
Hierbei "flackert" das Diagramm bei der Übernahme in das Formular. Der Rechner ist ein 2400er Intel.
Kann der Code optimiert werden oder muß ich das Flackern hinnehmen.
Flackern heist, daß das Diagramm beim Anzeigen von links ins Imagefeld kommt und bis zur gesamten Anzeige der Imagehintergrund schwarz ist. Dies stört ungemein.
Private Sub ZeigeDiagramm()
Dim objDObjekt As ChartObject
Dim objDiagramm As Chart
Dim sngHoehe As Single, sngBreite As Single
Dim strTmpDateiname As String
Application.ScreenUpdating = False
strTmpDateiname = Application.DefaultFilePath & "\tmpXLDiagBild.gif"
Set objDObjekt = ThisWorkbook.Sheets("Diagramm").ChartObjects(1)
Set objDiagramm = objDObjekt.Chart
With objDObjekt
sngHoehe = .Height
sngBreite = .Width
.Height = Me.Image1.Height
.Width = Me.Image1.Width
End With
objDiagramm.Export FileName:=strTmpDateiname, filtername:="GIF"
Me.Image1.Picture = LoadPicture(strTmpDateiname)
With objDObjekt
.Height = sngHoehe
.Width = sngBreite
End With
Set objDiagramm = Nothing
Set objDObjekt = Nothing
Kill strTmpDateiname
Application.ScreenUpdating = True
End Sub
Private Sub cboMonat_Change()
monat = cboMonat.Text
Select Case monat
Case "Januar": zeile = 4
Case "Februar": zeile = 17
Case "März": zeile = 30
Case "April": zeile = 43
Case "Mai": zeile = 56
Case "Juni": zeile = 69
Case "Juli": zeile = 82
Case "August": zeile = 95
Case "September": zeile = 108
Case "Oktober": zeile = 121
Case "November": zeile = 134
Case "Dezember": zeile = 147
End Select
cmdDiagramm.SetFocus
End Sub
Private Sub cboVgr_Change()
vgr = cboVgr.ListIndex
cmdDiagramm.SetFocus
End Sub
Private Sub cmdDiagramm_Click()
Dim bereich As Range
Sheets("Daten").Select
Set bereich = Sheets("Daten").Range(Cells(zeile + index, 4), Cells(zeile + index, 23))
Sheets("Diagramm").ChartObjects("Diagramm 1").Activate
ActiveChart.ChartArea.Select
ActiveChart.SeriesCollection(1).Values = bereich
ZeigeDiagramm
Set bereich = Nothing
End Sub
End Sub