Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Diagramm-Achsen tauschen via VBA

Diagramm-Achsen tauschen via VBA
16.04.2020 14:27:02
Gabriel
Hallo an Alle,
zunächst hoffe ich, dass es Euch allen gut geht.
Nun zu meinem Problem:
Ich habe ein Diagramm, bei dem ich per VBA die Datenmenge je nach Monat anzeigen lassen will.
Sheets("Diagrams").Select
ActiveSheet.ChartObjects("Chart 4").Activate
ActiveChart.FullSeriesCollection(2).Select
If month = "Jan" Then ActiveChart.SetSourceData Source:=Sheets("SALES").Range("F1:G1,F150:G156")
If month = "Feb" Then ActiveChart.SetSourceData Source:=Sheets("SALES").Range("F1:H1,F150:H156")
If month = "Mar" Then ActiveChart.SetSourceData Source:=Sheets("SALES").Range("F1:I1,F150:I156")
Month ist in dem Fall = "Mar". Wenn nun dieser Befehl abgearbeitet ist, werden zwar die Daten richtig genommen aber die Achse ist verschoben. Nun kann ich beim Diagramm mit "Daten auswählen" und "Zeile/Spalte tauschen" das wieder korrigieren, dass möchte ich aber mit VBA machen. Ich habe nur leider keine Ahnung wie ich das anstellen soll und bitte um Eure Hilfe.
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramm-Achsen tauschen via VBA
16.04.2020 14:32:10
Daniel
was sagt denn der Makrorecorder, wenn du das Zeile/Spalte-tauschen von Hand ausführst und aufzeichnest?
gruß Daniel
AW: Diagramm-Achsen tauschen via VBA
16.04.2020 14:48:20
Gabriel
Oh man.... wie doof von mir.
Ich hatte das die ganze Zeit direkt über das Diagramm versucht. Da sagte der Recorder nichts. Nun bin ich über die Bedienzeile "Diagrammtools / Entwurf" gegangen und da nimmt der Recorder korrekt auf.... Manchmal ist es aber auch zum Mäusemelken :-)
Danke und Grüße
Anzeige
Diagramm: Zeile/Spalte tauschen via VBA
16.04.2020 16:36:06
Beverly
Hi Gabriel,
mal nur als Ergänzung: auf Select und Activate kannst du hier verzichten:
Dim rngBereich As Range
Select Case Month
Case "Jan"
Set rngBereich = Sheets("SALES").Range("F1:G1,F150:G156")
Case "Feb"
Set rngBereich = Sheets("SALES").Range("F1:H1,F150:H156")
Case "Mar"
Set rngBereich = Sheets("SALES").Range("F1:I1,F150:I156")
End Select
With Worksheets("Diagrams").ChartObjects("Chart 4").Chart
.SetSourceData Source:=rngBereich
.PlotBy = xlColumns '
Übrigens tauschst du nicht die Achsen im Diagramm sondern die Anordnung, wie deine Daten im Tabellenblatt vorliegen (von Zeilenanordnung auf Spaltenanordnung).


Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Diagramm-Achsen tauschen mit VBA in Excel


Schritt-für-Schritt-Anleitung

Um die Achsen in einem Excel-Diagramm via VBA zu tauschen, kannst du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
  2. Erstelle ein neues Modul:

    • Klicke mit der rechten Maustaste auf einen der Einträge im Projekt-Explorer und wähle "Einfügen" > "Modul".
  3. Füge den folgenden Code ein:

    Dim rngBereich As Range
    Dim month As String
    month = "Mar" ' Setze hier den gewünschten Monat ein
    
    Select Case month
       Case "Jan"
           Set rngBereich = Sheets("SALES").Range("F1:G1,F150:G156")
       Case "Feb"
           Set rngBereich = Sheets("SALES").Range("F1:H1,F150:H156")
       Case "Mar"
           Set rngBereich = Sheets("SALES").Range("F1:I1,F150:I156")
    End Select
    
    With Worksheets("Diagrams").ChartObjects("Chart 4").Chart
       .SetSourceData Source:=rngBereich
       .PlotBy = xlColumns ' Damit tauscht man die Datenanordnung
    End With
  4. Führe den Code aus:

    • Drücke F5, um das Makro auszuführen und die Achsen in deinem Diagramm zu tauschen.

Häufige Fehler und Lösungen

  • Fehler: Diagramm zeigt falsche Achsen an
    Lösung: Stelle sicher, dass du die .PlotBy-Eigenschaft korrekt auf xlColumns oder xlRows gesetzt hast, abhängig von der gewünschten Anordnung.

  • Fehler: Das Diagramm aktualisiert sich nicht
    Lösung: Überprüfe, ob die SetSourceData-Methode die richtige Datenquelle verwendet. Es kann hilfreich sein, die Daten manuell zu überprüfen.


Alternative Methoden

Eine Alternative zur Verwendung von VBA ist, das Diagramm manuell zu bearbeiten:

  1. Klicke mit der rechten Maustaste auf das Diagramm und wähle "Daten auswählen".
  2. Klicke auf "Zeilen/Spalten wechseln". Diese Funktion ermöglicht es dir, die Achsen schnell ohne VBA-Code zu tauschen.

Für Pivot-Diagramme kannst du die Option "Pivot-Chart-Achsen tauschen" nutzen, um die Achsen einfach zu vertauschen.


Praktische Beispiele

Hier ist ein Beispiel, wie du ein Diagramm mit unterschiedlichen Datenquellen für verschiedene Monate erstellen kannst:

Sub UpdateChart()
    Dim rngBereich As Range
    Dim month As String
    month = "Feb" ' Beispielmonat

    Select Case month
        Case "Jan"
            Set rngBereich = Sheets("SALES").Range("F1:G1,F150:G156")
        Case "Feb"
            Set rngBereich = Sheets("SALES").Range("F1:H1,F150:H156")
        Case "Mar"
            Set rngBereich = Sheets("SALES").Range("F1:I1,F150:I156")
    End Select

    With Worksheets("Diagrams").ChartObjects("Chart 4").Chart
        .SetSourceData Source:=rngBereich
        .PlotBy = xlColumns
    End With
End Sub

In diesem Beispiel wird das Diagramm für den Monat Februar aktualisiert.


Tipps für Profis

  • Makro-Rekorder verwenden: Nutze den Makro-Rekorder, um den Code zu generieren, während du die Funktion "Zeilen/Spalten tauschen" manuell ausführst. So kannst du sehen, welche VBA-Befehle verwendet werden.

  • Vermeide Select und Activate: Reduziere die Anzahl der Select- und Activate-Befehle in deinem Code, um die Ausführung zu beschleunigen und den Code sauberer zu gestalten.

  • Diagramm-Layouts anpassen: Experimentiere mit verschiedenen Diagramm-Layouts, um die Darstellung deiner Daten zu optimieren.


FAQ: Häufige Fragen

1. Wie tausche ich die X- und Y-Achse in einem Diagramm?
Du kannst die Achsen tauschen, indem du die .PlotBy-Eigenschaft entweder auf xlRows oder xlColumns setzt.

2. Funktioniert das auch in Excel 365?
Ja, der Code funktioniert in Excel 365 sowie in früheren Versionen wie Excel 2016 und 2019.

3. Was ist der Unterschied zwischen 'SetSourceData' und 'PlotBy'?
SetSourceData definiert, welche Daten im Diagramm angezeigt werden, während PlotBy die Anordnung der Daten (Zeilen- oder Spaltenanordnung) angibt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige