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

Prüfung ob "Shape" vorhanden ist

Forumthread: Prüfung ob "Shape" vorhanden ist

Prüfung ob "Shape" vorhanden ist
12.11.2007 13:46:00
Tobias
Hallo,
ich kenne mich mit VBA nur wenig aus und habe mir mit dem Makro Rekorder folgende Aktion aufgenommen welche ein Objekt löscht. Ich hätte das ganze jetzt so so ausgebaut dass vorher eine Prüfung stattfindet ob dieses Objekt überhaupt vorhanden ist und nur dann löscht. Aktuell bekomme ich immer eine Fehlermeldung wenn es nicht vorhanden ist, dies möchte ich vermeiden.
Vielen Dank!
Hier der entscheidende Teil:
ActiveSheet.Shapes("Shape1").Select
Selection.Cut

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Prüfung ob "Shape" vorhanden ist
12.11.2007 13:58:55
Beverly
Hi Tobias,

Dim shShape As Shape
For Each shShape In ActiveSheet.Shapes
If shShape.Name = "Shape1" Then shShape.Cut
Next shShape


________________________________________

Anzeige
PERFEKT-DANKE!
12.11.2007 14:20:00
Tobias
vielen dank!
;
Anzeige
Anzeige

Infobox / Tutorial

Prüfung ob "Shape" in Excel vorhanden ist


Schritt-für-Schritt-Anleitung

Um zu überprüfen, ob ein bestimmtes "Shape" in Excel vorhanden ist, kannst Du den folgenden VBA-Code verwenden. Dieser Code iteriert über alle Shapes auf dem aktiven Blatt und prüft, ob das gewünschte Shape vorhanden ist, bevor es gelöscht wird.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen und dann auf Modul, um ein neues Modul zu erstellen.
  3. Füge den folgenden Code in das Modul ein:
Dim shShape As Shape
For Each shShape In ActiveSheet.Shapes
    If shShape.Name = "Shape1" Then
        shShape.Cut
    End If
Next shShape
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Führe das Makro aus, um das Shape zu löschen, falls es vorhanden ist.

Häufige Fehler und Lösungen

  • Fehlermeldung: "Shape nicht gefunden"
    Diese Fehlermeldung tritt auf, wenn das Shape nicht existiert. Der oben genannte Code verhindert diese Fehlermeldung, indem er zuerst prüft, ob das Shape vorhanden ist.

  • Shape wird nicht gelöscht
    Stelle sicher, dass der Name des Shapes genau mit dem im Code angegebenen Namen übereinstimmt. Achte auf Groß- und Kleinschreibung.


Alternative Methoden

Eine alternative Methode, um zu überprüfen, ob ein Shape vorhanden ist, besteht darin, die Shapes.Count-Eigenschaft zu verwenden. Hier ist ein Beispiel:

If ActiveSheet.Shapes.Count > 0 Then
    Dim shShape As Shape
    On Error Resume Next
    Set shShape = ActiveSheet.Shapes("Shape1")
    If Not shShape Is Nothing Then
        shShape.Cut
    End If
    On Error GoTo 0
End If

Diese Methode verwendet die Fehlerbehandlung, um sicherzustellen, dass der Code nicht abbricht, wenn das Shape nicht gefunden wird.


Praktische Beispiele

Angenommen, Du hast ein Shape namens "Shape1" und möchtest sicherstellen, dass es gelöscht wird, ohne eine Fehlermeldung zu erhalten. Der oben beschriebene Code ist genau das, was Du benötigst.

Ein weiteres Beispiel wäre, ein Shape zu benennen oder eine Übersetzung des Begriffs "Shape" in eine andere Sprache zu verwenden. Nutze die Name-Eigenschaft des Shapes, um es für zukünftige Referenzen leichter zu identifizieren.


Tipps für Profis

  • Verwende Variablen für Shapes: Anstatt direkt auf die Shapes zuzugreifen, kannst Du sie in Variablen speichern. Dies erleichtert das Arbeiten mit mehreren Shapes und deren Eigenschaften.

  • Erstelle eine Funktion: Du kannst eine Funktion erstellen, die das Vorhandensein eines Shapes prüft und es löscht, wenn es vorhanden ist. So kannst Du den Code mehrfach verwenden, ohne ihn jedes Mal neu schreiben zu müssen.


FAQ: Häufige Fragen

1. Was ist ein Shape in Excel?
Ein Shape ist ein grafisches Objekt in Excel, wie z.B. eine Form, ein Bild oder ein Diagramm.

2. Wie kann ich den Namen eines Shapes herausfinden?
Du kannst den Namen eines Shapes auswählen und in der Formateigenschaft oder in der Namensbox (links oben) nachsehen.

3. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der VBA-Code sollte in den meisten modernen Excel-Versionen funktionieren, solange die VBA-Funktionalität verfügbar ist.

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