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

Forumthread: Zeichnungsfläche von Diagrammen anpassen

Zeichnungsfläche von Diagrammen anpassen
18.08.2020 11:41:13
Diagrammen
Hallo zusammen,
ich möchte die Größe der Diagramm Zeichnungsfläche mit einem Makro verändern, wenn bestimmte Spalten gruppiert werden bzw. die Gruppierung rückgängig gemacht wird. Dazu hatte ich schon mal eine Frage gestellt, allerdings ist diese mittlerweile im Archiv, sodass ich darauf nicht mehr antworten kann: https://www.herber.de/forum/archiv/1772to1776/1775649_Aenderung_der_Zeichnungsflaeche_in_Diagrammen.html
Der Code von Franz funktioniert beim Ausblenden super. Vielen Dank an dieser Stelle dafür! Allerdings wird die Breite beim Einblenden nicht richtig gesetzt. Die Zeichnungsfläche ist zwar größer als bei ausgeblendeter Z Spalte, aber viel kleiner als im Code angegeben. Habe etwas mit den left und width Werten rumgespielt, an der Größe hat sich jedoch nichts verändert. Hat von euch jemand eine Idee, warum der Code im Else Block nicht funktioniert? Eigentlich steht da ja das Gleiche wie im oberen Teil.
Viele Grüße Juliane
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Bitte Mappe mit Diagramm hochladen - o.T.
18.08.2020 14:34:58
Beverly


AW: Bitte Mappe mit Diagramm hochladen - o.T.
18.08.2020 15:48:05
Juliane
Hi,
hab eine Beispieldatei hochgeladen: https://www.herber.de/bbs/user/139693.xlsm
Ziel ist, dass die Monate in der x Achse des Diagramms zu den Werten in Zeile 29 bis 31 passen.
Gruß Juliane
Anzeige
AW: Bitte Mappe mit Diagramm hochladen - o.T.
18.08.2020 16:01:01
Beverly
Hi Juliane,
ergänze mal innerhalb der If-Anweisung im Else-Zweig die Codezeile DoEvents - vielleicht reicht das ja schon:
  If bolHidden_Z  bolHidden Then
With ActiveSheet.ChartObjects("Diagramm 1").Chart.PlotArea
.Width = 778.54
.InsideLeft = 142.191
End With
DoEvents    '


Anzeige
AW: Bitte Mappe mit Diagramm hochladen - o.T.
19.08.2020 09:58:08
Juliane
Hi Karin,
die DoEvents Zeile verändert leider nichts.
Gruß Juliane
AW: Bitte Mappe mit Diagramm hochladen - o.T.
19.08.2020 10:42:02
Beverly
Hi Juliane,
das generelle Problem liegt beim Bildschirmaufbau - bei mir hat das DoEvents geholfen.
Aber du kannst die Zeile auch mal durch die folgende ersetzen:
Application.Wait Now + TimeValue("00:00:01")



Anzeige
AW: Bitte Mappe mit Diagramm hochladen - o.T.
19.08.2020 11:10:32
Juliane
Hi Karin,
was meinst du denn mit Bildschirmaufbau?
Application.Wait hat leider auch nicht geholfen.
Gruß Juliane
Lösungsvorschlag
19.08.2020 12:54:09
Beverly
Hi Juliane,
mit Bildschirmaufbau meine ich, dass Excel zu langsam ist um das Diagramm in der richtigen Breite darzustellen.
Ich habe es jetzt mal anders gelöst: die Diagrammbreite bleibt im Originalzustand mit allen Rubriken erhalten. Ich habe nur ein Rechteck ins Diagramm eingefügt, welches auf dem rechten Teil des Diagramms liegt und einfach ein- und ausgeblendet wird je nach Zustand der Gruppierung. Der Rahmen des Rechtecks ist zu sehen, wenn die Gruppierung geschlossen ist - den musst du noch löschen (habe ihn nur belassen damit du das Rechteck noch sehen kannst).
https://www.herber.de/bbs/user/139705.xlsm


Anzeige
AW: Lösungsvorschlag
19.08.2020 14:17:27
Juliane
Hi Karin,
vielen Dank für deine Mühe! Jetzt funktioniert es. Allerdings sind nun in der gruppierten Variante die falschen Werte sichtbar. Es sollen dort nicht die ersten, sondern die letzten 4 Monate sichtbar sein. Die Idee ist, dass standardmäßig die letzten 4 Monate sichtbar sind. Wenn der Nutzer eine längeren Zeitraum betrachten wollen, kann er diesen dann einblenden.
Viele Grüße Juliane
Anzeige
AW: Lösungsvorschlag
19.08.2020 17:28:51
Beverly
Hi Juliane,
dann bleibt nur, die Daten in der richtigen Reihenfolge entsprechend in einen anderen Zellbereich zu kopieren (ab Zeile 55, diese Zeilen kannst du ja ausblenden) und das Diagramm darauf aufzubauen - zumindest fällt mir im Augenblick nichts besseres ein.
Hir der Code dazu:
Private Sub Worksheet_Calculate()
Dim strFormel As String
Dim intLetzte As Integer
Dim bolHidden As Boolean
Application.ScreenUpdating = False
intLetzte = IIf(IsEmpty(Cells(40, Columns.Count)), Cells(40, Columns.Count).End(xlToLeft). _
Column, Columns.Count)
bolHidden = Columns(26).EntireColumn.Hidden
Application.EnableEvents = False 'Ereignismakros vorübergehend deaktivieren
If bolHidden = True Then
If bolHidden_Z  bolHidden Then
With ActiveSheet.ChartObjects("Diagramm 1").Chart
.Shapes(1).Visible = True
Range(Cells(40, intLetzte - 3), Cells(47, intLetzte)).Copy Cells(55, 22)
Range(Cells(40, 22), Cells(47, intLetzte - 4)).Copy
Cells(55, 26).PasteSpecial Paste:=xlValues
.SeriesCollection(1).XValues = Range(Cells(55, 22), Cells(40, intLetzte))
End With
bolHidden_Z = bolHidden
DoEvents
End If
Else
If bolHidden_Z  bolHidden Then
With ActiveSheet.ChartObjects("Diagramm 1").Chart
.Shapes(1).Visible = False
Range(Cells(40, 22), Cells(47, intLetzte)).Copy
Cells(55, 22).PasteSpecial Paste:=xlValues
.SeriesCollection(1).XValues = Range(Cells(55, 22), Cells(55, intLetzte))
End With
bolHidden_Z = bolHidden
DoEvents
End If
End If
Application.CutCopyMode = False
Application.EnableEvents = True 'Ereignismakros wieder aktivieren
Application.ScreenUpdating = True
End Sub


Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Zeichnungsfläche von Diagrammen anpassen in Excel


Schritt-für-Schritt-Anleitung

Um die Zeichnungsfläche eines Diagramms in Excel anzupassen, kannst Du die folgenden Schritte ausführen:

  1. Öffne Deine Excel-Datei und gehe zu dem Diagramm, dessen Zeichnungsfläche Du anpassen möchtest.

  2. Drücke Alt + F11, um den VBA-Editor zu öffnen.

  3. Füge ein neues Modul hinzu:

    • Klicke auf „Einfügen“ > „Modul“.
  4. Kopiere den folgenden Code in das Modul:

    Sub AnpassungZeichnungsfläche()
       With ActiveSheet.ChartObjects("Diagramm 1").Chart.PlotArea
           .Width = 778.54
           .InsideLeft = 142.191
       End With
    End Sub
  5. Führe das Makro aus:

    • Schließe den VBA-Editor und kehre zu Excel zurück.
    • Drücke Alt + F8, wähle „AnpassungZeichnungsfläche“ und klicke auf „Ausführen“.
  6. Überprüfe die Änderungen im Diagramm.


Häufige Fehler und Lösungen

  • Problem: Die Zeichnungsfläche wird nicht korrekt angezeigt.

    • Lösung: Stelle sicher, dass Du die richtige Diagrammbezeichnung in Deinem Code verwendest. Überprüfe auch, ob das Diagramm nicht ausgeblendet ist.
  • Problem: Das Diagramm aktualisiert sich nicht nach der Anpassung.

    • Lösung: Füge die Zeile DoEvents oder Application.Wait Now + TimeValue("00:00:01") nach dem Code hinzu, um sicherzustellen, dass Excel den Bildschirmaufbau korrekt verarbeitet.

Alternative Methoden

Wenn Du die Zeichnungsfläche eines Diagramms manuell ändern möchtest, gehe folgendermaßen vor:

  1. Klicke mit der rechten Maustaste auf das Diagramm und wähle „Diagramm formatieren“.
  2. Gehe zu „Plotbereich“ und passe die Größe der Zeichnungsfläche an.
  3. Du kannst auch die Diagramm-Optionen nutzen, um die Darstellung weiter zu verfeinern.

Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du die Zeichnungsfläche in Diagrammen anpassen kannst:

  1. Beispiel 1: Ändere die Größe der Zeichnungsfläche, um mehr Daten sichtbar zu machen. Nutze den VBA-Code in Schritt 4 der Schritt-für-Schritt-Anleitung.
  2. Beispiel 2: Verwende ein Rechteck, das über die Zeichnungsfläche gelegt wird, um bestimmte Bereiche hervorzuheben, während Du die Diagrammgröße beibehältst.

Tipps für Profis

  • Verwende Makros, um die Zeichnungsfläche automatisch anzupassen, wenn Daten aktualisiert werden.
  • Optimiere den Bildschirmaufbau: Manchmal kann ein langsamer Bildschirmaufbau in Excel die Anzeige beeinflussen. Nutze Application.ScreenUpdating zur Verbesserung der Performance.
  • Speichere Deine Makros in einer persönlichen Makroarbeitsmappe, um sie in verschiedenen Projekten wiederverwenden zu können.

FAQ: Häufige Fragen

1. Wie kann ich die Zeichnungsfläche für alle Diagramme gleichzeitig ändern?
Du musst den VBA-Code entsprechend anpassen, um durch alle Diagramme in Deinem Arbeitsblatt zu iterieren.

2. Warum wird die Zeichnungsfläche nicht aktualisiert, wenn ich die Spalten gruppiere?
Das kann an der Art liegen, wie Excel den Bildschirmaufbau verwaltet. Stelle sicher, dass Du DoEvents oder eine ähnliche Funktion nutzt, um Excel die Verarbeitung zu ermöglichen.

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