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

Forumthread: prüfen ob shape vorhanden

prüfen ob shape vorhanden
04.09.2006 10:34:38
atikar
Hallo Leute,
wie kann ich prüfen ob ein shape mit bekanntem namen vorhande ist?
ciao
atikar
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: prüfen ob shape vorhanden
04.09.2006 11:01:58
Heiko
Hallo atikar,
z.B. so:
Public

Function fcnShapeThere(strShapeName As String) As Boolean
' Prüft ob das angegebene Shape im aktiven Blatt vorhanden ist
Dim lngHelp As Long
On Error Resume Next
lngHelp = ActiveSheet.Shapes(strShapeName).Width
If Err.Number <> 0 Then
fcnShapeThere = False
Else
fcnShapeThere = True
End If
On Error GoTo 0
End Function


Sub test()
MsgBox fcnShapeThere("Rechteck 1")
End Sub

Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: prüfen ob shape vorhanden
04.09.2006 11:36:49
atikar
klappt super
danke heiko
AW: prüfen ob shape vorhanden
04.09.2006 11:39:40
Mag
Hi,
Ansatz:

Sub ttt()
Dim my As Shapes, i As Integer
Set my = Sheets("Tabelle1").Shapes
For i = 1 To my.Count
'MsgBox my.Range(i).Name
If my.Range(i).Name = "Rectangle 4" Then MsgBox "ja" Else MsgBox "nein"
Next i
End Sub

Gruss
Anzeige
;
Anzeige

Infobox / Tutorial

Shapes in Excel prüfen: So geht's


Schritt-für-Schritt-Anleitung

Um zu prüfen, ob ein Shape (z.B. ein Rechteck oder eine Grafik) in Excel vorhanden ist, kannst du eine benutzerdefinierte Funktion in VBA verwenden. Folge diesen Schritten:

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

  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code ein:

    Function fcnShapeThere(strShapeName As String) As Boolean
       ' Prüft ob das angegebene Shape im aktiven Blatt vorhanden ist
       Dim lngHelp As Long
       On Error Resume Next
       lngHelp = ActiveSheet.Shapes(strShapeName).Width
       If Err.Number <> 0 Then
           fcnShapeThere = False
       Else
           fcnShapeThere = True
       End If
       On Error GoTo 0
    End Function
  4. Um die Funktion zu testen, füge diesen Testcode in das Modul ein:

    Sub test()
       MsgBox fcnShapeThere("Rechteck 1")
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu Excel. Führe das Makro test aus, um zu sehen, ob das Shape vorhanden ist.


Häufige Fehler und Lösungen

  • Fehler: "Run-time error '91'"
    Dies passiert, wenn der Shape-Name falsch ist oder das Shape nicht vorhanden ist. Überprüfe den Namen des Shapes auf Tippfehler.

  • Lösung: Stelle sicher, dass der Name des Shapes genau mit dem in Excel übereinstimmt, einschließlich Groß- und Kleinschreibung.


Alternative Methoden

Eine andere Möglichkeit, Shapes zu überprüfen, ist die Verwendung einer Schleife:

Sub ttt()
    Dim my As Shapes, i As Integer
    Set my = Sheets("Tabelle1").Shapes
    For i = 1 To my.Count
        If my.Range(i).Name = "Rectangle 4" Then
            MsgBox "ja"
        Else
            MsgBox "nein"
        End If
    Next i
End Sub

Diese Methode ermöglicht es dir, alle Shapes auf einem bestimmten Blatt zu durchlaufen und zu überprüfen, ob ein bestimmtes Shape vorhanden ist.


Praktische Beispiele

Hier sind einige praktische Anwendungsbeispiele:

  1. Überprüfen eines bestimmten Shapes: Verwende die Funktion fcnShapeThere in einem Makro, um verschiedene Shapes auf einem Arbeitsblatt zu überprüfen und entsprechende Aktionen auszuführen.

  2. Erstellen von Bedingungen: Kombiniere die Funktion mit einer If-Abfrage, um bestimmte Aktionen nur dann auszuführen, wenn das Shape vorhanden ist.


Tipps für Profis

  • Namen von Shapes konsistent halten: Achte darauf, dass du die Namen deiner Shapes konsistent verwendest, um Verwirrung zu vermeiden.

  • Fehlerbehandlung: Nutze die On Error-Anweisungen, um dein Skript robuster zu machen und unerwartete Fehler elegant zu handhaben.

  • Dokumentation: Halte deine VBA-Funktionen gut dokumentiert, damit andere (oder du selbst) später leicht verstehen, was jede Funktion macht.


FAQ: Häufige Fragen

1. Wie finde ich den genauen Namen eines Shapes?
Du kannst den Namen eines Shapes direkt in der Excel-Oberfläche im Auswahlbereich sehen oder den Namen in der Formelleiste auswählen.

2. Kann ich diese Methode auch für andere Objekte verwenden?
Ja, die grundlegenden Prinzipien lassen sich auch auf andere Objekte in Excel anwenden, die über die Shapes-Sammlung zugänglich sind.

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