Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1776to1780
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

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

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
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")



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
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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige