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

VBA Verschieben von Diagrammen

Forumthread: VBA Verschieben von Diagrammen

VBA Verschieben von Diagrammen
13.08.2003 09:52:29
Felix
Hallo zusammen,
ich erstelle gerade ein automatisiertes grafisches Auswertungsprogamm.
Folegendes Problem:
Das Programm generiert ein Diagramm in der Tabelle xyz. Es scheint in der Tabellen willkürlich abgelegt zu werden. Ich möchte das Diagramm automatisch an seinen richtigen Platz schieben z.B. Mit der linken-oberen Ecke auf die Zelle B2. Kann man der Location des Diagramms Zellen zu weisen. Ich weiß nur wie man es mit increments bewegt.
Hier noch mein Code:

Function ErstelleGrafik(ByVal TName As String) As Object
Dim Grafik As Object
WSA.Activate
Charts.Add
ActiveChart.Location xlLocationAsObject, TName
Set Grafik = ActiveChart
ActiveSheet.ChartObjects("Diagramm 1").Select
ActiveChart.ChartArea.Select
ActiveSheet.Shapes("Diagramm 1").IncrementLeft -182.25
ActiveSheet.Shapes("Diagramm 1").IncrementTop 38.25
Set ErstelleGrafik = Grafik
End Function

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Verschieben von Diagrammen
13.08.2003 10:26:27
galenzo
Mein Ansatz wäre es die Breite bzw. die Höhe der vorhergehenden Zellen zu summieren und Diagramm.Left bzw .Top entsprechend zu setzen.

AW: geht noch einfacher
13.08.2003 10:37:18
galenzo
Geht noch einfacher:
Die Position erhältst du so:
y=Range("A1:B2").Height
x=Range("A1:B2").Width
Dann brauchst du nur noch das Diagramm dahin zu setzen:
ActiveSheet.Shapes("Diagramm 1").Left=x
ActiveSheet.Shapes("Diagramm 1").Top=y

Anzeige
;
Anzeige

Infobox / Tutorial

Diagramme in Excel mit VBA präzise positionieren


Schritt-für-Schritt-Anleitung

Um ein Diagramm in Excel mithilfe von VBA an einer spezifischen Zelle zu positionieren, kannst Du die folgenden Schritte befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle Einfügen > Modul.
  3. Gib den folgenden Code ein:
Function ErstelleGrafik(ByVal TName As String) As Object
    Dim Grafik As Object
    WSA.Activate
    Charts.Add
    ActiveChart.Location xlLocationAsObject, TName
    Set Grafik = ActiveChart
    Dim y As Double
    Dim x As Double
    y = Range("A1:B2").Height
    x = Range("A1:B2").Width
    ActiveSheet.Shapes("Diagramm 1").Left = x
    ActiveSheet.Shapes("Diagramm 1").Top = y
    Set ErstelleGrafik = Grafik
End Function
  1. Passe die Zellreferenz an: Ändere Range("A1:B2") in die Zelle, wo Du das Diagramm positionieren möchtest (z.B. Range("B2")).
  2. Führe die Funktion aus: Du kannst die Funktion ErstelleGrafik aufrufen, um das Diagramm an der gewünschten Position zu platzieren.

Häufige Fehler und Lösungen

  • Diagramm wird nicht angezeigt: Stelle sicher, dass der Diagrammname ("Diagramm 1") korrekt ist. Überprüfe die Namen in der Excel-Datei.
  • Diagramm wird nicht an der richtigen Stelle positioniert: Überprüfe die Zellreferenzen und die Berechnung der Höhe und Breite. Stelle sicher, dass die Referenzen zu den Zellen, die Du verwendest, korrekt sind.

Alternative Methoden

Eine einfachere Methode ist es, die Position des Diagramms direkt durch Setzen der Left und Top Eigenschaften zu definieren, ohne die Höhe und Breite vorher zu berechnen:

ActiveSheet.Shapes("Diagramm 1").Left = Range("B2").Left
ActiveSheet.Shapes("Diagramm 1").Top = Range("B2").Top

Diese Methode ist oft schneller und weniger fehleranfällig.


Praktische Beispiele

Wenn Du das Diagramm beispielsweise in die Zelle C3 verschieben möchtest, kannst Du den folgenden Code verwenden:

ActiveSheet.Shapes("Diagramm 1").Left = Range("C3").Left
ActiveSheet.Shapes("Diagramm 1").Top = Range("C3").Top

Dies platziert das Diagramm direkt auf der Zelle C3.


Tipps für Profis

  • Verwende benannte Bereiche: Anstatt feste Zellreferenzen zu verwenden, kannst Du benannte Bereiche definieren, um Deinen Code flexibler zu gestalten.
  • Fehlerbehandlung einfügen: Füge Fehlerbehandlungsroutinen hinzu, um sicherzustellen, dass Dein Code auch bei unerwarteten Fehlern stabil bleibt.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Diagramme gleichzeitig verschieben?
Du kannst eine Schleife verwenden, um alle Diagramme in einem bestimmten Bereich zu verschieben. Achte darauf, die Namen der Diagramme zu durchlaufen.

2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der Code sollte in allen modernen Excel-Versionen (ab Excel 2007) funktionieren, solange VBA unterstützt wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige