Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Diagramm alle Linien gleich - wie?

Diagramm alle Linien gleich - wie?
johannes
Hallo zusammen,
in meinem Diagramm gibt es sehr viele (über 60) grapfen. Die sollen alle gleich aussehen - das nachher die einzeln Linie nicht mehr zu identifizieren ist ist gewollt.
Wie aber schaffe ich es nicht im Code einzel jede Linie ansprechen zu müssen, sondern dass VBA _
alle (und das egal wieviele vorhanden sind entsprechend anpasst?

Sub alle_gleich()
ActiveSheet.ChartObjects("Diagramm 100").Activate
ActiveChart.SeriesCollection(16).Select
With Selection.Border
.ColorIndex = 5
.Weight = xlThin
.LineStyle = xlContinuous
End With
With Selection
.MarkerBackgroundColorIndex = xlNone
.MarkerForegroundColorIndex = xlNone
.MarkerStyle = xlNone
.Smooth = True
.MarkerSize = 3
.Shadow = False
End With
End Sub

Für Eure Hilfe bedanke ich mich schon jetzt.
Gruß
Johannes
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Diagramm alle Linien gleich - wie?
15.06.2010 14:59:31
Ramses
Hallo
wenn du weisst wieviele Graphen es sind, bau doch ein Schleife drum herum
Ungetestet, aber probiers mal aus
Sub alle_gleich()
Dim i As Long
ActiveSheet.ChartObjects("Diagramm 100").Activate
With ActiveChart
For i = 1 To 60
With .SeriesCollection(i)
With .Border
.ColorIndex = 5
.Weight = xlThin
.LineStyle = xlContinuous
.MarkerBackgroundColorIndex = xlNone
.MarkerForegroundColorIndex = xlNone
.MarkerStyle = xlNone
.Smooth = True
.MarkerSize = 3
.Shadow = False
End With
End With
Next i
End With
End Sub
Gruss Rainer
Anzeige
AW: Diagramm alle Linien gleich - wie?
15.06.2010 15:27:24
johannes
Hallo Rainer,
komischerweise musste ich folgende Zeilen auskommentieren, weil hier der Code hängenblieb:
'.MarkerBackgroundColorIndex = xlNone
'.MarkerForegroundColorIndex = xlNone
'.MarkerStyle = xlNone
'.Smooth = True
'.MarkerSize = 3
'.Shadow = False
aber dann gings prima. Danke
Gruß
Johannes
Anzeige
AW: Diagramm alle Linien gleich - wie?
15.06.2010 15:55:42
Beverly
Hi Johannes,
Sub AlleGleich()
Dim inReihe As Integer
With ActiveSheet.ChartObjects("Diagramm 100").Chart
For inReihe = 1 To .SeriesCollection.Count
With .SeriesCollection(inReihe)
With .Border
.ColorIndex = 5
.Weight = xlThin
.LineStyle = xlContinuous
End With
.MarkerBackgroundColorIndex = xlNone
.MarkerForegroundColorIndex = xlNone
.MarkerStyle = xlNone
.Smooth = True
.MarkerSize = 3
End With
Next inReihe
End With
End Sub



Anzeige
AW: Diagramm alle Linien gleich - wie?
15.06.2010 16:39:35
johannes
Hallo Karin,
Dein Code geht gut - was mir auffällt, ist, dass einge der Kurven bei "Linie glätten" doch "eckig" geblieben sind - woran kann das denn liegen?
Gruß
Johannes
AW: Diagramm alle Linien gleich - wie?
15.06.2010 16:54:09
Beverly
Hi Johannes,
sind das die Linien, die in der Reihenfolge im Diagramm hinten liegen? Es könnte möglicherweise daran liegen, dass Excel nicht so schnell reagieren kann wenn es sehr viele Linien sind. Ergänze mal den Code nach der Zeile End With durch diese Zeile
DoEvents



Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Excel Diagramm: Alle Linien gleich formatieren


Schritt-für-Schritt-Anleitung

Um alle Linien in einem Excel-Diagramm gleich zu formatieren, kannst du VBA verwenden. Hier ist eine einfache Anleitung:

  1. Öffne dein Excel-Dokument und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (dein Dokument)" > Einfügen > Modul.

  3. Füge den folgenden Code in das Modul ein:

    Sub alle_gleich()
        Dim i As Long
        ActiveSheet.ChartObjects("Diagramm 100").Activate
        With ActiveChart
            For i = 1 To .SeriesCollection.Count
                With .SeriesCollection(i)
                    With .Border
                        .ColorIndex = 5
                        .Weight = xlThin
                        .LineStyle = xlContinuous
                    End With
                    .MarkerBackgroundColorIndex = xlNone
                    .MarkerForegroundColorIndex = xlNone
                    .MarkerStyle = xlNone
                    .Smooth = True
                    .MarkerSize = 3
                End With
            Next i
        End With
    End Sub
  4. Schließe den VBA-Editor und führe das Makro aus, indem du ALT + F8 drückst, das Makro auswählst und auf Ausführen klickst.

Mit diesem VBA-Skript kannst du die Linienstärke für alle Linien in deinem Diagramm ändern und die Linien glätten, sodass sie gleich aussehen.


Häufige Fehler und Lösungen

  • Problem: Die Linien erscheinen nicht gleichmäßig oder eckig.

    • Lösung: Stelle sicher, dass du die .Smooth-Eigenschaft auf True gesetzt hast. Wenn das Problem weiterhin besteht, füge DoEvents nach der End With-Zeile hinzu, um Excel mehr Zeit zu geben, die Änderungen zu verarbeiten.
  • Problem: Der Code bleibt hängen.

    • Lösung: Überprüfe, ob du die richtigen Indizes für die SeriesCollection verwendest. Achte darauf, dass du nicht versuchst, mehr Linien zu formatieren, als vorhanden sind.

Alternative Methoden

Falls du die Linien manuell formatieren möchtest, kannst du dies auch direkt im Excel-Diagramm tun:

  1. Klicke mit der rechten Maustaste auf eine Linie im Diagramm.
  2. Wähle Format Data Series.
  3. Ändere die Linienstärke, die Farbe und aktiviere die Linie glätten-Option für jede Linie.

Diese Methode ist jedoch zeitaufwendig, wenn du mehrere Linien in einem Diagramm hast.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du dein Diagramm anpassen kannst:

  • Um die Linienstärke für alle Linien zu ändern, kannst du den .Weight-Wert im VBA-Skript anpassen. Beispielsweise:

    .Weight = xlMedium
  • Wenn du die Rahmenlinien dünner machen möchtest, kannst du die .Weight-Eigenschaft für die Rahmenlinien ebenfalls anpassen.


Tipps für Profis

  • Nutze die For Each-Schleife für eine flexiblere Lösung, insbesondere wenn die Anzahl der Grapfen variiert.

    Dim serie As Series
    For Each serie In ActiveChart.SeriesCollection
        With serie.Border
            .ColorIndex = 5
            .Weight = xlThin
            .LineStyle = xlContinuous
        End With
    Next serie
  • Experimentiere mit den verschiedenen MarkerStyle-Optionen, um das Aussehen deiner Linien zu individualisieren.


FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen Liniendiagramm und anderen Diagrammtypen? Ein Liniendiagramm stellt Datenpunkte durch Linien dar und ist ideal, um Trends über Zeit darzustellen.

2. Wie kann ich sicherstellen, dass alle Linien in meinem Diagramm gleich aussehen? Durch das Verwenden von VBA kannst du alle Linien gleichzeitig formatieren, anstatt jede Linie einzeln anzupassen.

3. Was mache ich, wenn mein Diagramm nicht die gewünschten Änderungen anzeigt? Überprüfe, ob der Code korrekt ist und ob du das richtige Diagramm ausgewählt hast. Manchmal kann es hilfreich sein, Excel neu zu starten.

4. Welche Excel-Version benötige ich für diese VBA-Funktionen? Die beschriebenen VBA-Funktionen sind in Excel 2010 und neueren Versionen verfügbar.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige