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

VBA prüfen wenn Shape ...gewählt wurde dann

Forumthread: VBA prüfen wenn Shape ...gewählt wurde dann

VBA prüfen wenn Shape ...gewählt wurde dann
19.02.2019 15:00:51
udo

Hallo Forum, bräuchte bitte eure Hilfe bei
der folgenden Problematik
ich möchte in einem Marko an einer bestimmten Stelle eine Abfrage setzen
indem der Code erkennt , wenn ein ein spez. Shape angewählt wurde und noch aktiv ausgewählt ist dann ...
Ich suche nach der richtigen Formulierung für diese IF Abfrage- habt ihr eine Idee ?
If ActiveSheet.Shape = ActiveSheet.Shapes.Range(Array("RE_02")) Then ...
( so klappt es leider nicht ... ) ?
wäre euch für etwas Beihilfe sehr dankbar
LG udo
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA prüfen wenn Shape ...gewählt wurde dann
19.02.2019 15:21:32
Nepumuk
Hallo Udo,
im Prinzip so:
Public Sub Test()
    If TypeOf Selection Is Rectangle Then
        If Selection.Name = "Rectangle 1" Then
            Beep
        End If
    End If
End Sub

Gruß
Nepumuk
Anzeige
Ja, prima ! das passt perfekt ... lieben Dank ...
19.02.2019 15:32:03
udo
Vielen Dank Nepumuk , damit gehts wunderbar
Danke dir sehr
LG udo
winke winke ;-)
;
Anzeige
Anzeige

Infobox / Tutorial

VBA Abfragen für Shapes: So funktioniert’s


Schritt-für-Schritt-Anleitung

Um zu prüfen, ob ein bestimmtes Shape in Excel über VBA gewählt wurde, kannst du den folgenden Code verwenden. Dieser Code überprüft, ob das aktuelle Auswahlobjekt ein Shape ist und ob der Name des Shapes mit dem gesuchten Namen übereinstimmt.

Public Sub Test()
    If TypeOf Selection Is Shape Then
        If Selection.Name = "RE_02" Then
            Beep
        End If
    End If
End Sub
  1. Öffne den VBA-Editor (Alt + F11).
  2. Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject" > Einfügen > Modul).
  3. Kopiere den obigen Code in das Modul.
  4. Schließe den VBA-Editor und gehe zurück zu Excel.
  5. Wähle das Shape mit dem Namen "RE_02" aus und führe das Makro aus.

Häufige Fehler und Lösungen

  • Fehler: "Typenkonflikt"
    Lösung: Achte darauf, dass du TypeOf Selection Is Shape verwendest, um sicherzustellen, dass das Objekt ein Shape ist.

  • Fehler: Makro wird nicht ausgeführt
    Lösung: Stelle sicher, dass du das Makro korrekt im VBA-Editor gespeichert hast und dass die Sicherheitsstufe für Makros in Excel so eingestellt ist, dass sie die Ausführung von Makros erlaubt.


Alternative Methoden

Eine alternative Methode zur Überprüfung, ob ein Shape ausgewählt ist, besteht darin, das ActiveSheet.Shapes-Objekt zu verwenden. Hier ist ein Beispiel:

Public Sub CheckShape()
    Dim shp As Shape
    Set shp = ActiveSheet.Shapes("RE_02")

    If shp.Visible And shp.Select Then
        Beep ' oder führe eine andere Aktion aus
    End If
End Sub

Diese Methode ist nützlich, wenn du direkt auf ein Shape zugreifen und dessen Eigenschaften überprüfen möchtest.


Praktische Beispiele

Ein praktisches Beispiel ist die Verwendung von Shapes zur Visualisierung von Daten. Du kannst Shapes in Excel verwenden, um Grafiken zu erstellen und diese über VBA zu steuern. Hier ein einfaches Beispiel, um alle Shapes auf einem Blatt auszublenden:

Public Sub HideAllShapes()
    Dim shp As Shape
    For Each shp In ActiveSheet.Shapes
        shp.Visible = False
    Next shp
End Sub

Tipps für Profis

  • Verwende With-Anweisungen:
    Reduziere wiederholte Codezeilen, indem du With-Anweisungen verwendest. So bleibt der Code übersichtlicher.

  • Erstelle benutzerdefinierte Funktionen:
    Wenn du häufig mit Shapes arbeitest, erstelle benutzerdefinierte Funktionen, die dir helfen, wiederkehrende Aufgaben zu automatisieren.

  • Teste deinen Code regelmäßig:
    Teste deinen VBA-Code in einer sicheren Umgebung, um sicherzustellen, dass alles wie gewünscht funktioniert, bevor du es in produktiven Dateien anwendest.


FAQ: Häufige Fragen

1. Wie kann ich herausfinden, ob ein Shape sichtbar ist?
Du kannst die Visible-Eigenschaft des Shapes verwenden: If Shape.Visible Then ....

2. Was mache ich, wenn mein Shape nicht gefunden wird?
Stelle sicher, dass der Name des Shapes korrekt ist und dass es sich wirklich auf dem aktiven Blatt befindet. Überprüfe auch die Schreibweise des Namens.

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