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

Position und Größe eines Diagramms

Forumthread: Position und Größe eines Diagramms

Position und Größe eines Diagramms
25.08.2022 15:18:45
Martin
Hallo zusammen,
ich versuche den äußeren Rahmen (ChartArea) und den inneren Rahmen (PlotArea) eines Diagramms mit den Grenzen verschiedener Zellen (bzw. Zeilen und Spalten) in Deckung zu bringen.

Sub DiagramSize()
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.ChartArea.Select
'Position des äußeren Rahmens (ChartArea)
ActiveChart.ChartArea.Top = Rows(5).Top
ActiveChart.ChartArea.Left = Columns(7).Left
ActiveChart.ChartArea.Height = Rows(25).Top - Rows(5).Top
ActiveChart.ChartArea.Width = Columns(20).Left - Columns(7).Left
'Position des inneren Rahmens (PlotArea)
ActiveChart.PlotArea.InsideTop = Rows(7).Top - Rows(5).Top
ActiveChart.PlotArea.InsideLeft = Columns(8).Left - Columns(7).Left
ActiveChart.PlotArea.InsideHeight = Rows(23).Top - Rows(7).Top
ActiveChart.PlotArea.InsideWidth = Columns(19).Left - Columns(8).Left
End Sub
Die Spaltenbreite bzw. Zeilenhöhe lesen ich mit ".Left" und ".Top" aus.
Für die PlotArea verwende ich z.B. InsideTop anstatt .Top .
Leider bekomme ich die Linien nicht in Deckung -> siehe angehängte Datei
https://www.herber.de/bbs/user/154803.xlsm
Habt Ihr eine Idee was ich falsch mache? Muss ich ggfs. noch die Einheiten umrechnen?
Viele Grüße
Martin
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Position und Größe eines Diagramms
27.08.2022 10:09:48
Beverly
Hi Martin,
die Gesamtgröße anpassen ist nicht das Problem. Bei der Zeichenfläche jedoch müsstest du die Höhe der Zeilen/Breite der Spalten m.E. in Pixel umrechnen - nach diesem Prinzip:

Sub DiagramSize()
With ActiveSheet.ChartObjects("Chart 1")
'Position/Größe der Diagrammfläche (ChartArea)
.Top = Rows(5).Top
.Left = Columns(7).Left
.Height = Rows("5:24").Height
.Width = Columns("G:S").Width
' Position/Größe der Zeichenfläche (PlotArea)
With .Chart.PlotArea
.Top = .Parent.Top + Rows("5:6").Height 'in Pixel
.Left = .Parent.Left + Columns("G").ColumnWidth 'in Pixel
.Height = Rows("7:22").Height 'in Pixel
.Width = Columns("H:R").Width 'in Pixel
End With
End With
End Sub
Bei der Umrechnung der Spaltenbreite/Zeilenhöhe in Pixel kann ich dir leider nicht weiterhelfen, aber m.W. musst du dazu zuerst die Bildschirmauflösung ermitteln.
Bis später
Karin

Anzeige
AW: Position und Größe eines Diagramms
29.08.2022 08:08:53
Martin
Hallo Karin,
vielen Dank für Deine Antwort. Ja, sowas habe ich mir schon gedacht...
Kennt sich jemand mit der Umrechnung aus?
Viele Grüße
Martin
AW: Position und Größe eines Diagramms
29.08.2022 10:51:52
Oberschlumpf
Hi,
ich hab in Google.de diesen Text eingegeben:
vba Zeilenhöhe in Pixel
...Ungefähr 1.700 Ergebnisse in nuuur 0,38 Sekunden...
Da ich sowas von sicher bin, dass auch du mit Hilfe von Google suchen kannst, muss ich dir nun nich verraten, in welchem der Treffer deine Antwort steht, oder?
Aber eine weitere Gegenfrage hab ich:
Wieso musst du denn unbedingt denkungsgleich anzeigen?
Wäre die einfachere Lösung nicht, die Linien für Zeilen/Spalten einfach auszublenden?
Und wenn du zusätzlich zu nem Diagramm eine/mehrere Tabellen hast, die ohne Linien nich mehr schön ausehen,...
...nutz entweder nur für die Tabellen die Rahmenformatierung
...oder wandel "normale" Tabellen in "intelligente" Tabellen um - letztere haben mindestens für jede Zeile unterschiedliche Farben, was die Übersichtlichkeit auch wieder steigen lässt
Ciao
Thorsten
Ciao
Thorsten
Anzeige
AW: Position und Größe eines Diagramms
29.08.2022 14:57:03
Martin
Hallo Thorsten,
ich habe mich jetzt (und auch schon vorher) durch mehrere Foren gelesen. Leider scheint das Thema (insbesondere bei verschiedenen Bildschirmauflösungen und Betriebssystemen) nicht trivial zu sein. Daher die Frage.
Zu Deiner Gegenfrage: Die hochgeladene Datei war nur eine Beispieldatei. Ich bauen ein Gantt-Chart, welches aus einer Tabelle mit ToDo-Einträgen sowie Start- und Endwerten und einem vertikalen Balkendiagramm besteht. Wenn die Linien nicht in Deckung sind, wird das Ablesen schwer.
Viele Grüße
Martin
Anzeige
AW: Position und Größe eines Diagramms
29.08.2022 15:43:44
Beverly
Hi Martin,
ein Gantt-Diagramm kann man auch aus Zeilen/Spalten im Tabellenblatt erstellen, ohne dass es sich um ein "richtiges " Diagramm handelt - dazu verwendet man dann die bedingte Formatierung.
Bis später
Karin

Anzeige
AW: Position und Größe eines Diagramms
30.08.2022 08:49:05
Martin
Hallo Karin,
ja, das ist mit klar. Ich würde aber auch gerne eine tagesgenaue Darstellung schaffen, Milestones hinzufügen, die Jahre farblich trennen, Labels zu der Anzahl der Monate hinzufügen usw. - - - da sehe ich nur eine Kombination aus Tabelle und Diagramm.
Viele Grüße
Martin
Anzeige
Stattdessen: Gantt-Dia mit bed. Formatierung
30.08.2022 11:24:45
Beverly
Hi Martin,
gerade durch die Formatierung in der Tabelle selbst erhältst du eine tagesgenaue Darstellung, weil eine genaue Übereinstimmung von Zeichenfläche eines "richtigen" Diagramms mit den betreffenden Spalten eben sehr kompliziert (?wenn überhaupt möglich?) ist. Meilensteine und andersfarbige Darstellung der einzelnen Jahre kannst du ebenso gut mittels bedingter Formatierung erreichen und anstelle von Labels kannst du Kommentare in den betreffenden Zellen verwenden.
Bis später
Karin

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Diagrammposition und -größe in Excel anpassen


Schritt-für-Schritt-Anleitung

Um die Position und Größe eines Diagramms in Excel anzupassen, kannst du den folgenden VBA-Code verwenden. Dieser Code stellt sicher, dass der äußere Rahmen (ChartArea) und der innere Rahmen (PlotArea) des Diagramms genau mit den Grenzen der Zellen übereinstimmen:

Sub DiagramSize()
    With ActiveSheet.ChartObjects("Chart 1")
        ' Position und Größe des Diagramms (ChartArea)
        .Top = Rows(5).Top
        .Left = Columns(7).Left
        .Height = Rows("5:24").Height
        .Width = Columns("G:S").Width

        ' Position und Größe der Zeichenfläche (PlotArea)
        With .Chart.PlotArea
            .Top = .Parent.Top + Rows("5:6").Height ' in Pixel
            .Left = .Parent.Left + Columns("G").ColumnWidth ' in Pixel
            .Height = Rows("7:22").Height ' in Pixel
            .Width = Columns("H:R").Width ' in Pixel
        End With
    End With
End Sub

Stelle sicher, dass das Diagramm den Namen "Chart 1" hat. Wenn du eine andere Excel-Version verwendest, kann es Unterschiede geben.


Häufige Fehler und Lösungen

Ein häufiger Fehler, den viele Benutzer machen, ist, dass sie die Zeilenhöhe und Spaltenbreite nicht korrekt in Pixel umrechnen. Hier sind einige Lösungen:

  1. Falsche Umrechnung: Überprüfe, ob du die Höhe und Breite der Zeilen und Spalten korrekt in Pixel umgerechnet hast. Die Bildschirmauflösung kann dabei eine Rolle spielen.

  2. Diagramm nicht sichtbar: Wenn das Diagramm nicht sichtbar ist, stelle sicher, dass die Positionen von .Top und .Left korrekt sind und das Diagramm nicht außerhalb des sichtbaren Bereichs platziert wird.

  3. Linien stimmen nicht überein: Wenn die Linien von PlotArea und ChartArea nicht übereinstimmen, überprüfe die Werte, die du für InsideTop und InsideLeft verwendest. Diese sollten relative Abstände zur ChartArea sein.


Alternative Methoden

Eine alternative Methode zur Erstellung eines Gantt-Diagramms in Excel ist die Verwendung von bedingter Formatierung. Diese Methode erfordert kein tatsächliches Diagramm, sondern nutzt die Formatierung in den Zellen selbst, um eine ähnliche Darstellung zu erzielen:

  1. Zellen formatieren: Du kannst die Füllfarbe der Zellen verwenden, um verschiedene Zeiträume darzustellen.
  2. Meilensteine hinzufügen: Füge spezielle Symbole oder Formatierungen für Meilensteine direkt in die Zellen ein.
  3. Labels in Kommentaren: Statt Labels im Diagramm zu verwenden, kannst du Kommentare in den Zellen hinzufügen.

Praktische Beispiele

Hier sind einige praktische Anwendungen, wie du die Position und Größe von Diagrammen anpassen kannst:

  • Projektzeitleiste: Verwende die oben genannte Methode, um ein Gantt-Diagramm zu erstellen, das die Fortschritte eines Projekts visualisiert.
  • Verkaufsstatistik: Stelle sicher, dass dein Diagramm die genauen Verkaufszahlen in einem bestimmten Zeitraum anzeigt, indem du die ChartArea und PlotArea entsprechend anpasst.
  • Budgetüberwachung: Verwende Diagramme zur Visualisierung von Budgetverläufen und stelle sicher, dass alle Linien genau übereinstimmen.

Tipps für Profis

  • Verwende VBA: Automatisiere die Anpassung von Diagrammpositionen und -größen mit VBA, um Zeit zu sparen.
  • Regelmäßige Überprüfung: Überprüfe regelmäßig die Diagrammeinstellungen, insbesondere nach Änderungen in der Tabelle.
  • Schriftarten anpassen: Achte darauf, dass die Schriftarten in den Diagrammen gut lesbar sind und zur Gesamtpräsentation passen.

FAQ: Häufige Fragen

1. Wie erkenne ich, ob mein Diagramm den richtigen Namen hat? Du kannst den Namen des Diagramms in der Diagramm-Tools-Leiste überprüfen, wenn das Diagramm ausgewählt ist.

2. Was mache ich, wenn die Diagrammhöhe und -breite nicht korrekt sind? Überprüfe die Werte für .Height und .Width und stelle sicher, dass sie die richtigen Zeilen und Spalten ansprechen, die du verwenden möchtest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige