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

Diagramm löschen, wenn vorhanden

Forumthread: Diagramm löschen, wenn vorhanden

Diagramm löschen, wenn vorhanden
02.11.2007 09:00:26
Heiko
Hallo, VBAler,
seltsames Problem:
Ich will per Makro ein Diagramm bzw. alle Objekte aus einem Arbeitsblatt löschen, aber nur wenn welche vorhanden sind. Bisher hab ichs so realisiert:
For Each ws In ActiveWorkbook.Worksheets
If Not ws.Name = "aux" Then
ws.Range("a:z").ClearContents
ws.ChartObjects.Delete
ws.OLEObjects.Delete
End If
Next ws
unter Excel 2003 läufts problemlos, aber unter Excel 2007 erzeugt der Code einen Laufzeitfehler 1004 (Anwendungs- oder Objektbezogeren Fehler). Vermutlich, weil kein Objekt da ist.
Wie muss ich den Code ändern, damit VBA erkennt, ob ein Diagramm oder Objekt da ist? Bzw. eben nur dannlöschen, wenn ein Objekt gefunden wurde?
Vielen Dank im Voraus,
Heiko

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ich habs...
02.11.2007 09:25:40
Heiko
alles ok...
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Diagramm löschen in Excel: So geht's


Schritt-für-Schritt-Anleitung

Um ein Diagramm in Excel zu löschen, wenn es vorhanden ist, kannst Du den folgenden VBA-Code verwenden. Dieser Code überprüft, ob ein Diagramm oder ein OLE-Objekt existiert, bevor es gelöscht wird:

Sub DiagrammLoeschen()
    Dim ws As Worksheet
    For Each ws In ActiveWorkbook.Worksheets
        If Not ws.Name = "aux" Then
            ws.Range("A:Z").ClearContents
            On Error Resume Next ' Fehler ignorieren, wenn kein Objekt vorhanden ist
            ws.ChartObjects.Delete
            ws.OLEObjects.Delete
            On Error GoTo 0 ' Fehlerbehandlung wieder aktivieren
        End If
    Next ws
End Sub

Dieser Code läuft unter Excel 2007 und sollte Probleme mit Laufzeitfehlern vermeiden. Stelle sicher, dass Du den Code in einem Modul in deinem VBA-Editor einfügst.


Häufige Fehler und Lösungen

Ein häufiger Fehler, der beim Löschen von Diagrammen auftritt, ist der Laufzeitfehler 1004. Dieser Fehler tritt auf, wenn Du versuchst, ein Diagramm zu löschen, das nicht existiert. Um dies zu vermeiden, verwende die On Error Resume Next Anweisung, die es Deinem Code ermöglicht, ohne Unterbrechung fortzufahren, wenn ein Fehler auftritt.


Alternative Methoden

Falls Du nicht mit VBA arbeiten möchtest, kannst Du auch manuell Diagramme in Excel löschen:

  1. Diagramm auswählen: Klicke auf das Diagramm, das Du löschen möchtest.
  2. Entfernen: Drücke die Entf-Taste auf Deiner Tastatur, um das Diagramm zu löschen.

Diese Methode ist einfach, aber weniger effizient, wenn Du mehrere Diagramme auf einmal entfernen musst.


Praktische Beispiele

Angenommen, Du hast ein Arbeitsblatt mit mehreren Diagrammen. Du möchtest alle Objekte entfernen, wenn sie vorhanden sind. Verwende den oben genannten VBA-Code, um dies in einem Schritt zu erledigen, ohne jedes Diagramm manuell löschen zu müssen.

Ein Beispiel-Szenario könnte so aussehen:

  • Du hast ein Arbeitsblatt mit Diagrammen, die wöchentlich aktualisiert werden.
  • Vor dem Aktualisieren möchtest Du sicherstellen, dass alte Diagramme entfernt werden.

Der VBA-Code hilft Dir, dies effizient zu erledigen.


Tipps für Profis

  • Speichere Deine Arbeit, bevor Du VBA-Skripte ausführst, um Datenverluste zu vermeiden.
  • Verwende Debug.Print in Deinem Code, um den Fluss und die Werte während der Ausführung zu überprüfen.
  • Experimentiere mit For Each-Schleifen, um auch andere Objekte in Excel zu manipulieren, z. B. Tabellen oder Formen.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass der VBA-Code unter verschiedenen Excel-Versionen funktioniert? Verwende die On Error Resume Next Anweisung, um Fehler zu ignorieren, falls Diagramme oder OLE-Objekte nicht vorhanden sind.

2. Kann ich den Code auch für andere Objekte verwenden? Ja, Du kannst den Code anpassen, um andere Objekte zu löschen. Ersetze einfach die ChartObjects und OLEObjects durch die gewünschten Objekttypen.

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