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

Forumthread: Breite Zeichnungsfläche Diagramm fest

Breite Zeichnungsfläche Diagramm fest
26.11.2012 20:56:05
Golem
Hallo Excel-Fachleute,
ich hatte folgende Anfrage ins Forum gestellt:
Hallo Excel-Fachleute,
ich versuche mein Problem zu beschreiben!
Mit einen Code gebe ich die Position und die Größe eines Diagramms vor. Die Zeichnungsfläche
lege ich händisch fest. Der Min-Wert der X-Achse ist immer 0 und der Max-Wert der X-Achse
passt sich mit einen Code verändernden Werten an. Bei Veränderung der Max-Werte bleibt
die Breit der Zeichnungsfläche immer gleich.
Ich kann aber auch die Position und Größe der Zeichnungsfläche mit einen Code vorgeben.
Der Min-Wert der X-Achse ist immer 0 und der Max-Wert der X-Achse passt sich mit
einen Code verändernden Werten an. Bei Veränderung der Max-Werte bleibt die Breit der
Zeichnungsfläche aber nicht gleich. Sie verändert sich geringfügig.
Wenn ich danach die Zeichnungsfläche wieder händisch anpasse, so bleibt wieder die
Zeichnungsfläche, bei Veränderung der Max-Werte, gleich.
Ich habe bisher nicht herausgefunden, wie dieses Verhalten zwischen händisch und
Codeeinstellung zustande kommt.
Kennt jemand dieses Verhalten?
Schöne Grüße Golem
Darauf habe ich bisher keine Antwort erhalten ( keine Kritik ).
Für interessierte Excel-Anwender.
Bisher habe ich die Position und Größe der Zeichnungsfläche wie folgt vorgegeben:
'Zeichnungsfläche1 Position und Größe festlegen
With ActiveSheet.ChartObjects(1).Chart.PlotArea
.Left = Range("AX29")
.Top = Range("AX30")
.Width = Range("AX31")
.Height = Range("AX32")
End With
Jetzt habe ich den Code mit "Inside" angepasst.
Damit kann die Zeichnungsfläche unabhängig von der Achsenbeschriftung formatiert werden.
'Zeichnungsfläche1 Position und Größe festlegen
With ActiveSheet.ChartObjects(1).Chart.PlotArea
.InsideLeft = Range("AX17")
.InsideTop = Range("AX18")
.InsideWidth = Range("AX19")
.InsideHeight = Range("AX20")
End With
Durch diese Veränderung tritt das v.g. Verhalten nicht mehr auf.
Schöne Grüße Golem

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Breite Zeichnungsfläche Diagramm fest
26.11.2012 21:08:43
Beverly
Hi,
.PlotArea.InsideLeft gibt den Abstand der inneren Kante der Zeichenfläche ohne Berücksichtigung der Breite der Achsenbeschriftung an, .PlotArea.Left dagegen gibt den Abstand einschließlich der Breite der Achsenbeschriftung an, und das kann (muss aber nicht) zu unterschiedlichen Positionen führen.


Anzeige
AW: Breite Zeichnungsfläche Diagramm fest
26.11.2012 22:06:01
Golem
Hallo Karin,
einen schönen Dank für Deine Mitteilung.
Jetzt funktioniert alles einwandfrei!
Ich habe wieder sehr viel im Bereich VBA gelernt ( auch Dank Deiner Hilfe bei mehreren Fragen ).
Schöne Grüße Golem
Anzeige
Anzeige

Infobox / Tutorial

Breite der Zeichnungsfläche im Diagramm festlegen


Schritt-für-Schritt-Anleitung

Um die Zeichnungsfläche eines Diagramms in Excel festzulegen, kannst du den folgenden VBA-Code verwenden. Dieser sorgt dafür, dass die Größe der Zeichnungsfläche bei Änderungen an den Maximalwerten der X-Achse konstant bleibt:

  1. Öffne dein Excel-Dokument und drücke Alt + F11, um den Visual Basic for Applications (VBA)-Editor zu öffnen.

  2. Füge den folgenden Code in ein Modul ein:

    ' Zeichnungsfläche1 Position und Größe festlegen
    With ActiveSheet.ChartObjects(1).Chart.PlotArea
        .InsideLeft = Range("AX17")
        .InsideTop = Range("AX18")
        .InsideWidth = Range("AX19")
        .InsideHeight = Range("AX20")
    End With
  3. Ändere die Zellreferenzen (AX17, AX18, AX19, AX20) entsprechend deiner gewünschten Position und Größe.

  4. Führe den Code aus und überprüfe, ob die Zeichnungsfläche wie gewünscht angepasst wird.

Damit kannst du die Größe der Zeichnungsfläche in deinem Diagramm effektiv definieren.


Häufige Fehler und Lösungen

  • Problem: Die Zeichnungsfläche ändert sich nicht wie erwartet, wenn du den Maximalwert der X-Achse anpasst.

    Lösung: Stelle sicher, dass du die .Inside-Eigenschaften verwendest, um die Zeichnungsfläche unabhängig von der Breite der Achsenbeschriftung zu definieren.

  • Problem: Der Abstand der Zeichnungsfläche ist nicht korrekt.

    Lösung: Überprüfe die verwendeten Zellreferenzen. Achte darauf, dass die Zellen die richtigen Werte für Position und Größe enthalten.


Alternative Methoden

Falls du keine VBA-Makros verwenden möchtest, kannst du auch die Zeichnungsfläche manuell anpassen:

  1. Klicke mit der rechten Maustaste auf das Diagramm und wähle „Diagramm formatieren“.
  2. Gehe zu „Zeichnungsfläche“ und ändere die Position und Größe direkt im Dialogfeld.

Diese Methode ist jedoch weniger flexibel, besonders wenn du häufig Anpassungen vornehmen musst.


Praktische Beispiele

Ein Beispiel für die Anwendung der oben genannten Methode:

Angenommen, du möchtest die Zeichnungsfläche eines Säulendiagramms in Excel so anpassen, dass sie immer in einem bestimmten Bereich bleibt. Verwende den folgenden Code:

' Beispiel für die Anpassung der Zeichnungsfläche
With ActiveSheet.ChartObjects(1).Chart.PlotArea
    .InsideLeft = 100
    .InsideTop = 50
    .InsideWidth = 400
    .InsideHeight = 300
End With

In diesem Beispiel wird die Zeichnungsfläche auf eine genaue Position und Größe festgelegt, unabhängig von den Achsenbeschriftungen.


Tipps für Profis

  • Nutze die .Inside-Eigenschaften, um sicherzustellen, dass die Zeichnungsfläche nicht von den Achsenbeschriftungen beeinflusst wird.
  • Experimentiere mit verschiedenen Zellreferenzen, um die beste Anpassung für deine Diagramme zu finden.
  • Halte deinen VBA-Code gut kommentiert, damit du später leichter nachvollziehen kannst, was jeder Teil des Codes bewirken soll.

FAQ: Häufige Fragen

1. Wie kann ich die Größe der Zeichnungsfläche in Excel manuell ändern?
Du kannst die Zeichnungsfläche manuell ändern, indem du mit der rechten Maustaste auf das Diagramm klickst und „Diagramm formatieren“ wählst. Dort kannst du die Abmessungen der Zeichnungsfläche anpassen.

2. Warum ändert sich die Zeichnungsfläche nicht, wenn ich die Achsenwerte anpasse?
Das kann daran liegen, dass du die .Left- und .Top-Eigenschaften verwendest, die die Breite der Achsenbeschriftung berücksichtigen. Verwende stattdessen die .Inside-Eigenschaften, um dies zu vermeiden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige