Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Diagramm per VBA löschen

Diagramm per VBA löschen
19.11.2007 10:49:00
Melanie
Hallo VBA-Profis,
ich stehe vor dem folgenden Problemchen, bei dem ihr mir sicher helfen könnt.
Ich möchte per VBA ein Diagramm in einer Datei löschen, weil sie per Email verschickt wird und in der Versendeversion das Diagramm nicht enthalten sein soll.
Also bin ich hergegangen und habe das Ganze mit dem Makrorecorder aufgezeichnet. Wenn ich das Ganze aber anschließend laufen lasse, dann bekomme ich die Meldung "Die Chart-Objects Eigenschaft des Worksheet-Objectes kann nicht zugeordnet werden." Wenn ich dann debugge, dann markert er mir die Zeile an, in der das Diagramm angewählt wird.
Ich geh jetzt mal davon aus, dass er das Diagramm nicht findet, weil ein fixer Name aufgezeichnet wurde. Ich würde jetzt gerne das Diagramm suchen lassen und als Variable in den Code einbinden. DIe Beispieldatei hab ich angehängt.
Ich hoffe, es ist einigermaßen klar geworden, was ich tun will :o)
Danke im Voraus für Eure Hilfe!
Grüße, Melanie
https://www.herber.de/bbs/user/47855.xls

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramm per VBA löschen
19.11.2007 11:19:00
Tino
Hallo,
nicht der Name sondern die Nr. könntest du verwenden, bei mehreren müssten diese zuvor gezählt werten
und zBsp. in einer Schleife gelöscht werden!
ActiveSheet.ChartObjects(1).Delete
Gruss
Tino

AW: Diagramm per VBA löschen
19.11.2007 11:27:12
Tino
Hallo,
hier mal noch zwei Beispiele, um diese in einer Schleife zu löschen

For a = Sheets("Employees").ChartObjects.Count To 1 Step -1
Sheets("Employees").ChartObjects(a).Delete
Next a


'oder etwas kürzer


With Sheets("Employees")
For a = .ChartObjects.Count To 1 Step -1
.ChartObjects(a).Delete
Next a
End With


Gruss
Tino

Anzeige
Danke
19.11.2007 11:31:13
Melanie
Auch hier, ein Dankeschön für die Antwort!

AW: Diagramm per VBA löschen
19.11.2007 11:27:00
Renee
Hi Melanie,
Versuch's mal so:

Sub WegMitDiagrammen()
Dim ch As Object
For Each ch In ActiveSheet.ChartObjects
ch.Delete
Next
End Sub


GreetZ Renee

Danke!
19.11.2007 11:30:38
Melanie
Danke euch beiden. Funzt prima!
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Diagramm per VBA löschen


Schritt-für-Schritt-Anleitung

Um ein Diagramm in Excel per VBA zu löschen, kannst Du folgende Schritte ausführen:

  1. Öffne Deine Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu, indem Du im Menü auf Einfügen und dann auf Modul klickst.

  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub WegMitDiagrammen()
        Dim ch As Object
        For Each ch In ActiveSheet.ChartObjects
            ch.Delete
        Next
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Um das Makro auszuführen, drücke ALT + F8, wähle WegMitDiagrammen aus und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Fehlermeldung: "Die Chart-Objects Eigenschaft des Worksheet-Objectes kann nicht zugeordnet werden."

    • Lösung: Achte darauf, dass das Arbeitsblatt, das Du bearbeitest, aktiv ist. Wenn Du mit einem bestimmten Arbeitsblatt arbeitest, solltest Du es explizit angeben, z. B. Sheets("DeinArbeitsblatt").ChartObjects.
  • Fehlende Diagramme: Wenn das Makro keine Diagramme findet, überprüfe, ob sich wirklich Diagramme auf dem aktiven Blatt befinden.


Alternative Methoden

Wenn Du mehrere Diagramme löschen möchtest, kannst Du eine Schleife verwenden. Hier sind zwei Beispiele:

  1. Mit einer Zählerschleife:

    For a = Sheets("Employees").ChartObjects.Count To 1 Step -1
        Sheets("Employees").ChartObjects(a).Delete
    Next a
  2. Mit der With-Anweisung für mehr Klarheit:

    With Sheets("Employees")
        For a = .ChartObjects.Count To 1 Step -1
            .ChartObjects(a).Delete
        Next a
    End With

Diese Methoden sind besonders nützlich, wenn Du sicherstellen möchtest, dass alle Diagramme auf einmal gelöscht werden.


Praktische Beispiele

Angenommen, Du hast ein Arbeitsblatt namens "Sales" mit mehreren Diagrammen, die Du löschen möchtest. Verwende den folgenden VBA-Code:

Sub DiagrammeLoeschen()
    Dim ch As Object
    For Each ch In Sheets("Sales").ChartObjects
        ch.Delete
    Next
End Sub

Dieses Makro entfernt alle Diagramme auf dem "Sales"-Blatt.


Tipps für Profis

  • Nutze die On Error Resume Next Anweisung, um den Code robuster zu gestalten. So wird das Makro nicht unterbrochen, wenn kein Diagramm gefunden wird.

    On Error Resume Next
    ActiveSheet.ChartObjects(1).Delete
    On Error GoTo 0
  • Vergiss nicht, regelmäßig Backups Deiner Excel-Dateien zu erstellen, insbesondere bevor Du massenhafte Änderungen vornimmst.


FAQ: Häufige Fragen

1. Kann ich auch spezifische Diagramme löschen? Ja, Du kannst das Diagramm anhand seines Namens oder Indexes gezielt ansprechen. Beispiel: ActiveSheet.ChartObjects("DiagrammName").Delete.

2. Funktioniert das auch in Excel 365? Ja, die VBA-Codes sind ab Excel 2010 und in allen späteren Versionen, einschließlich Excel 365, anwendbar. Achte darauf, dass Du die Entwicklertools aktiviert hast.

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