Clever-Excel-Forum

Normale Version: VBA, Arbeitsmappe durchsuchen und in den Ergebnissen "weiter springen"
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich habe folgendes Problem, für welches ich schon einen Lösungsansatz habe:
Ich habe eine Arbeitsmappe mit über 100 Blättern, in welchen immer nach dem gleichen Schema Tabellen enthalten sind. Das erste Tabellenblatt heißt "Suche". Per VBA würde ich gerne eine Suche erstellen, in der man einen Begriff eingeben kann und dieser entsprechend in allen Blättern gesucht wird. Das erfüllt der folgende Code bereits. Das Problem ist nur, dass die Suche nach dem ersten gefundenen Begriff aufhört.
Ich hätte gerne, dass man per Tab o. Ä. von Blatt zu Blatt springen kann und der gesuchte Begriff markiert wird. Gibt es da eine Möglichkeit?

Danke im Voraus für eure Hilfe! Angel

Mein bisheriger Code:

Code:
Option Explicit
Sub suchen()
Dim strSuch As String, ws As Integer, rng As Range, strNeu As String
Start:
Do
strSuch = InputBox("Wonach wird gesucht?" & Chr(13) & "Mindestens 3 Buchstaben angeben!")
If strSuch = "" Or Len(strSuch) = 0 Then Exit Sub
Loop While Len(strSuch) < 3
ws = 1
Do While ws <= Worksheets.Count
Sheets(ws).Select
Set rng = Cells.Find(What:=strSuch, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
 xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
 , SearchFormat:=False)
If rng Is Nothing And ws = Worksheets.Count Then
strNeu = MsgBox("Keine Begriff gefunden!" & Chr(13) & "Möchten sie erneut suchen?", vbYesNo)
If strNeu = vbNo Then
Exit Sub
Else
GoTo Start
End If
ElseIf rng Is Nothing And ws < Worksheets.Count Then
ws = ws + 1
Else
rng.Select
Exit Sub
End If
Loop
End Sub
Hallo, :19:

das "Springseil" bringt Excel schon von Haus aus mit: :21: 
[attachment=20301]
(18.10.2018, 08:09)Lisa1503 schrieb: [ -> ]Gibt es da eine Möglichkeit?
Moin Lisa!
Ja, die gibt es:
Strg+F
Optionen, Suchen in: Arbeitsmappe, Weitersuchen
Wozu also VBA??
Wenn Du dies unbedingt (aus Langeweile?) nachbauen willst, dann musst Du die Sheets anders durchschleifen.
For i = 1 To Worksheets.Count
und gleichzeitig die jeweils erste Fundstelle in einer Variable merken und mit .FindNext arbeiten.
Gruß Ralf
Hallo Lisa,

dieses Makro wurde bereits mit Excel mitgeliefert und kann mit Strg+f
gestartet werden.

siehe
https://www.youtube.com/watch?v=yh3C0lp7qy4


lg
Chris