Excel Blätter durchsuchen und auswählen?

... komplette Frage anzeigen

3 Antworten

Ich gehe jetzt mal davon aus, dass du weißt, wie man...

  • einen Button erstellt
  • dem Button einen Code zuweist
  • den Code beim Klick ausführt

Falls nicht, sag bitte nochmal Bescheid!

Hier wäre ein Code-Beispiel:

Private Sub CommandButton1_Click()

Dim n_worksheets As Integer
Dim i As Integer
Dim myString As String

myString = "sucheName" 'oder wie auch immer du die Variable definieren möchtest
n_worksheets = ThisWorkbook.Worksheets.Count

For i = 1 To n_worksheets
If ThisWorkbook.Worksheets(i).Name = myString Then
MsgBox ("Treffer! Gefunden wurde Worksheet #" + Str(i))
ThisWorkbook.Worksheets(i).Select
' oder jeder beliebige Code, was beim Treffer passieren soll
End If
Next i

End Sub


Das Prinzip beruht darauf, dass die Worksheets in Excel sowohl eine Indexnummer ("Worksheets(i)"), als auch einen Namen ("Worksheets(i).name") haben.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von steffan12345679
31.08.2016, 14:32

Vielen Dank. So viel weiss ich noch☺

1
Kommentar von steffan12345679
31.08.2016, 14:52

Kann man den Code noch erweitern, damit auch eine Massagebox erscheint wenn es kein Tabellenblatt mit diesem Namen gibt?

0

Die gesamte Arbeitsmappe zu durchsuchen ist eine erweiterte Suchoption. Siehe Screenshot. Den Suchdialog kannst du mit Strg + f aufrufen.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von offeltoffel
31.08.2016, 13:54

Wenn man nun einen Button drückt, sollen alle Blätternamen durchsucht werden und das anschliessend das entsprechende Blatt ausgewählt werden.

Ich glaube, es ging hier eher um eine VBA-Lösung?

0

Die Tabellenblätter kannst Du mit einer for-schleife durchlaufen, sheets.count liefert die Anzahl. Dann kannst Du mit zählenwenn (=countif) jeweils einen Bereich auf der aktuellen Tabellenblatt prüfen. Ein Ergebnis größer 0 bedeutet einen Treffer. Für mein Beispiel habe ich den Bereich auf a1:z100 eingegrenzt, das kannst Du nach belieben erweitern.

Wie meintest Du allerdings, dass das Blatt mit Treffer ausgewählt werden soll? Was genau so da passieren?

Sub suche()
For i = 1 To Sheets.Count
If WorksheetFunction.CountIf(Sheets(i).Range("A1:Z100"), sucheName) > 0 Then
MsgBox ("Gefunden auf Tabellenblatt: " & Sheets(i).Name)
Exit For
End If
Next
End Sub

edit: ich sehe erst jetzt nach richtigem Lesen, dass Du gar nicht den Inhalt der Tabellen durchsuchen willst, sondern die Namen. Dafür ist meine Lösung natürlich Quark, offeltoffel hat die Lösung dafür aber geliefert.

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?