Ich benutuze das folgende Makro, um ein Diagramm darzustellen. Aber es läuft sehr langsam ab. Ich habe große Intervallen angegeben, weil die Daten sind immer unterschiedlich. Manchmal laufen sie bis 1200 und manchmal bis 2000.
Wie könnte ich das Makro optimieren?
Vielen Dank im Voraus.
Lg
Christian
Wie könnte ich das Makro optimieren?
Vielen Dank im Voraus.
Lg
Christian
Quellcode
- Private Sub CommandButton1_Click()
- Dim r As Range, c As Range
- Set r = Range("a1:a6000")
- Application.ScreenUpdating = False
- For Each c In r
- If Len(c.Text) = 0 Then
- c.EntireRow.Hidden = True
- Else
- c.EntireRow.Hidden = False
- End If
- Next c
- Application.ScreenUpdating = True
- Worksheets("Tabelle1").Rows(2).Hidden = True
- Dim myChtObj As ChartObject
- Dim rngChtData As Range
- Dim rngChtXVal As Range
- Dim iColumn As Long
- ' define chart data
- Set rngChtData = Range("'Tabelle1'!$a$1:$i$6000")
- ' define chart's X values
- With rngChtData
- Set rngChtXVal = .Columns(1).Offset(1).Resize(.Rows.Count - 2)
- End With
- ' add the chart
- Set myChtObj = ActiveSheet.ChartObjects.Add _
- (Left:=500, Width:=750, Top:=150, Height:=450)
- With myChtObj.Chart
- ' make an XY chart
- .ChartType = xlLine
- ' remove extra series
- Do Until .SeriesCollection.Count = 0
- .SeriesCollection(1).Delete
- Loop
- ' add series from selected range, column by column
- For iColumn = 2 To rngChtData.Columns.Count
- With .SeriesCollection.NewSeries
- .Values = rngChtXVal.Offset(, iColumn - 1)
- .XValues = rngChtXVal
- .Name = rngChtData(1, iColumn)
- End With
- Next
- End With
- End Sub