gibt es eine Möglichkeit, in einer Mappe mit dutzenden Tabellen und noch mehr CommandButtons einen bestimmten CommandButton (z. B.: CommandButton27) zu suchen und auch zu finden? ;o)=)
Servus
Sub aaa()
Dim wks As Worksheet, cmd As Object
For Each wks In Worksheets
On Error Resume Next
Set cmd = wks.Shapes("CommandButton27")
If Not cmd Is Nothing Then
MsgBox wks.Name
Exit Sub
End If
Next
End Sub
Um einen bestimmten CommandButton in einer Excel-Arbeitsmappe zu finden, kannst du den folgenden VBA-Code verwenden. Dieser durchsucht alle Arbeitsblätter nach einem spezifischen CommandButton, zum Beispiel "CommandButton27":
Öffne Excel und gehe zu „Entwicklertools“.
Klicke auf „Visual Basic“, um den VBA-Editor zu öffnen.
Füge ein neues Modul hinzu, indem du im Projektfenster mit der rechten Maustaste auf „VBAProject“ klickst und „Einfügen“ > „Modul“ wählst.
Kopiere und füge den folgenden Code in das Modul ein:
Sub SucheCommandButton()
Dim wks As Worksheet, cmd As Object
For Each wks In Worksheets
On Error Resume Next
Set cmd = wks.Shapes("CommandButton27") ' Hier den Namen des CommandButtons anpassen
If Not cmd Is Nothing Then
MsgBox "Der CommandButton befindet sich auf dem Arbeitsblatt: " & wks.Name
Exit Sub
End If
Next
MsgBox "CommandButton nicht gefunden."
End Sub
Schließe den VBA-Editor und führe das Makro aus.
Fehler: "Object variable or With block variable not set"
Fehler: "CommandButton nicht gefunden."
Eine alternative Methode, um CommandButtons in deiner Excel-Datei zu finden, besteht darin, die Excel-Objektinspektor zu nutzen:
ALT + F11
, um den VBA-Editor zu öffnen.Hier sind einige Beispiele, wie du den VBA-Code anpassen kannst, um verschiedene CommandButtons zu suchen:
Um nach "CommandButton1" zu suchen, ändere die Zeile:
Set cmd = wks.Shapes("CommandButton1")
Um alle CommandButtons aufzulisten, kannst du den Code anpassen, um alle gefundenen CommandButtons anzuzeigen:
For Each wks In Worksheets
For Each cmd In wks.Shapes
If TypeName(cmd) = "OLEObject" Then
If cmd.Name Like "CommandButton*" Then
MsgBox "Gefundener CommandButton: " & cmd.Name & " auf " & wks.Name
End If
End If
Next cmd
Next wks
Verwende die Debug.Print
-Funktion: Anstelle von MsgBox
kannst du Debug.Print
verwenden, um die Ergebnisse im Direktfenster des VBA-Editors auszugeben. Dies ist besonders nützlich, wenn du viele CommandButtons hast und die Informationen nicht ständig in Pop-ups sehen möchtest.
Optimierung des Codes: Wenn du häufig nach CommandButtons suchst, erwäge, deinen Code in eine benutzerdefinierte Funktion umzuwandeln, die dir eine Liste der gefundenen CommandButtons zurückgibt.
1. Wie kann ich einen CommandButton in einem geschützten Arbeitsblatt finden? Um einen CommandButton in einem geschützten Arbeitsblatt zu finden, musst du zuerst das Blatt entsperren, indem du den Schutz aufhebst.
2. Ist dieser Code in allen Excel-Versionen anwendbar? Ja, der VBA-Code sollte in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen, einschließlich Excel 2010 und neuer.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen