Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1532to1536
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA-Code Optimierung

VBA-Code Optimierung
19.01.2017 10:10:53
Franky
Hallo Zusmammen,
hätte eine eine bitte und zwar wie könnte ich diesen Teilabschnitt meines Programms optimieren, also einfacher schreiben?
'AGN Balken
ActiveChart.SeriesCollection(1).Name = "=""AGN"""
ActiveChart.SeriesCollection(1).Values = ActiveSheet.Range("$I$11:$AB$11")
ActiveChart.SeriesCollection(1).Interior.ColorIndex = 30
'AGP Balken
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(2).Name = "=""AGP"""
ActiveChart.SeriesCollection(2).Values = ActiveSheet.Range("$I$17:$AB$17")
ActiveChart.SeriesCollection(2).Interior.Color = RGB(105, 139, 34)
'AGW Linie mit Marker
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(3).Name = "=""AGW"""
ActiveChart.SeriesCollection(3).Values = ActiveSheet.Range("$I$23:$AB$23")
ActiveChart.SeriesCollection(3).Format.Line.Weight = 3
ActiveChart.SeriesCollection(3).Border.ColorIndex = 23
ActiveChart.SeriesCollection(3).ChartType = xlLineMarkers
ActiveChart.SeriesCollection(3).MarkerBackgroundColor = RGB(0, 102, 204)
ActiveChart.SeriesCollection(3).MarkerForegroundColor = RGB(0, 102, 204)
ActiveChart.SeriesCollection(3).MarkerStyle = xlMarkerStyleDiamond
ActiveChart.SeriesCollection(3).MarkerSize = 10
'AGW Vorwoche Gestrichelte Linie mit Marker
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(4).Name = "=""AGW - Vorwoche"""
ActiveChart.SeriesCollection(4).Values = _
"='AGW Übersicht KW03.2017'!$I$26:$AA$26"
ActiveChart.SeriesCollection(4).Format.Line.Weight = 3
ActiveChart.SeriesCollection(4).XValues = ActiveSheet.Range("$I$5:$AB$5")
ActiveChart.SeriesCollection(4).Border.ColorIndex = 15
ActiveChart.SeriesCollection(4).ChartType = xlLineMarkers
ActiveChart.SeriesCollection(4).MarkerBackgroundColor = RGB(192, 192, 192)
ActiveChart.SeriesCollection(4).MarkerForegroundColor = RGB(192, 192, 192)
ActiveChart.SeriesCollection(4).Format.Line.DashStyle = msoLineDash
ActiveChart.SeriesCollection(4).MarkerStyle = xlMarkerStyleCircle
ActiveChart.SeriesCollection(4).MarkerSize = 8
ActiveChart.Axes(xlValue).MajorGridlines.Select
'Datenreihen hinzufügen und einige Löschen
ActiveChart.SeriesCollection(4).ChartType = xlLineMarkers
ActiveChart.SeriesCollection(3).ApplyDataLabels
ActiveChart.SeriesCollection(3).Points(2).DataLabel.Delete
ActiveChart.SeriesCollection(3).Points(3).DataLabel.Delete
ActiveChart.SeriesCollection(3).Points(4).DataLabel.Delete
ActiveChart.SeriesCollection(3).Points(5).DataLabel.Delete
ActiveChart.SeriesCollection(3).Points(7).DataLabel.Delete
ActiveChart.SeriesCollection(3).Points(8).DataLabel.Delete
ActiveChart.SeriesCollection(3).Points(9).DataLabel.Delete
ActiveChart.SeriesCollection(3).Points(10).DataLabel.Delete
ActiveChart.SeriesCollection(3).Points(11).DataLabel.Delete
ActiveChart.SeriesCollection(3).Points(13).DataLabel.Delete
ActiveChart.SeriesCollection(3).Points(14).DataLabel.Delete
ActiveChart.SeriesCollection(3).Points(15).DataLabel.Delete
ActiveChart.SeriesCollection(3).Points(17).DataLabel.Delete
ActiveChart.SeriesCollection(3).Points(18).DataLabel.Delete
ActiveChart.SeriesCollection(3).Points(19).DataLabel.Delete
ActiveChart.Axes(xlValue).MajorGridlines.Select

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Code Optimierung
19.01.2017 10:24:27
Daniel
Hi
1. mit der WITH-Klammer arbeiten.
spart zwar keine Zeilen, aber Schreibarbeit.
Wenn du ein Objekt öfters verwendest, kannst du es in der Zeile mit WITH festlegen.
In der Folge schreibst du dann anstelle dieses Objektes einfach nur den Punkt:
'AGP Balken
ActiveChart.SeriesCollection.NewSeries
With ActiveChart.SeriesCollection(2)
.Name = "=""AGP"""
.Values = ActiveSheet.Range("$I$17:$AB$17")
.Interior.Color = RGB(105, 139, 34)
end With

2. verwende Schleifen
wenn sich in einem Codeblock in jeder Zeile nur ein Zahlenwert ändert, kannst du eine Schleife verwenden, bspw zum löschen der DataLabel der Punkte 2-19:
for i = 2 to 19
ActiveChart.SeriesCollection(3).Points(i).DataLabel.Delete
Next
Gruß Daniel
Anzeige
AW: VBA-Code Optimierung
19.01.2017 10:50:42
Franky
Hey, vielen dank! :)
Gruß Franky

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige