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

Forumthread: String suchen über alle Tabellenblätter

String suchen über alle Tabellenblätter
30.10.2019 09:56:40
kultnoob
Guten Morgen zusammen,
brauche eure Hilfe.
Im Grunde ist es relativ einfach doch mein Hirn und dessen Windungen kommen nicht zu einem Ergebnis.
Eine Userform mit Textbox
Darin wird ein Wert angegeben und dieser Wert sollen in allen Zellen des gesamten Tabellenblattes gesucht werden.

Sub Suchen()
Dim ws as Worksheet
Dim Suchfeld as string
Suchfeld = Textbox1.value
for each ws in thisworkbook.worksheets
if Instr(1,?, Suchfeld)  0 then
exit sub
end if
next ws
End Sub

Wie definiere ich die Zelle, dass er alle Zellen aller Tabellenblätter durchsucht.
Sorry, ich blicks gerade nicht...
Danke für die Hilfe...
Grüße
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: String suchen über alle Tabellenblätter
30.10.2019 10:08:35
Nepumuk
Hallo,
versuch es mal so:
Sub Suchen()
Dim ws As Worksheet
Dim objCell As Range
Dim Suchfeld As String
Suchfeld = Textbox1.Text
For Each ws In ThisWorkbook.Worksheets
Set objCell = ws.Cells.Find(What:=Suchfeld, _
LookIn:=xlValues, LookAt:=xlPart, MatchCase:=False)
If Not objCell Is Nothing Then
MsgBox "Gefunden in Tabelle " & ws.Name & " in Zelle " & objCell.Address
Exit For
End If
Next ws
End Sub

Gruß
Nepumuk
Anzeige
AW: String suchen über alle Tabellenblätter
30.10.2019 10:22:53
kultnoob
Hi Nepumuk,
danke für die Hilfe.
Funktioniert. Habe es noch ein wenig angepasst.
Interessant wäre die Frage jetzt, wenn der Suchbegriff mehrfach vorkommt.
Wenn man zum Beispiel einen Namen findet und dieser ist in mehreren Sheets vorhanden.
Jetzt hirnt mein Hirn schon wieder und überlegt sich, wie kann man es angeben, dass er in der MsgBox alle gefundenen Inhalte findet.
Des Weitere ist mir aufgefallen, dass wenn ich zum Beispiel in einer Zelle in einem Sheet Mustermann, Max stehen habe aber nach Max Mustermann suche, er nichts findet. Gebe ich dagegen Mustermann oder Max oder Mustermann, Max an, findet er logischerweise etwas.
Nun die Frage, ob man das so programmieren kann, dass er jeden Inhalt nach einem Leerzeichen als Variable nimmt und nach jedem Wert sucht. Ok, wenn man jetzt den Namen Hans sucht und der kommt 200 mal vor, könnte die MsgBox sehr lang werden. Ob das dann zielführend ist, ist eine andere Frage.
Trotzdem Danke für die Top Hilfe. :-)
Grüße
Anzeige
AW: String suchen über alle Tabellenblätter
31.10.2019 20:35:00
Piet
Hallo
wenn man dem Code ein wenig modifiziert könnte das MsgBox Ergebnis so aussehen. Die Eingabe mit Komma trennen, und den langen Namen nach vorne setzen. Der Code listet jetzt alle Max Mustermann auf, sofern der Vorname nicht in einer seperaten Zelle steht. Die Schreibweise spielt hier keine Rolle!
Der Ursprungs Code ist und bleibt von Nepumuk! Nur etwas modifiziert ...
mfg Piet

Sub Suchen()
Dim ws As Worksheet
Dim objCell As Range
Dim Suchfeld As String
Dim Adr1 As String  'neu
Dim Txt2 As String
Dim FindTxt As String
Suchfeld = Textbox1.Text
If InStr(Suchfeld, ",") Then
Txt2 = Trim(Mid(Suchfeld, InStr(Suchfeld, ",") + 1, 100))
Suchfeld = Trim(Left(Suchfeld, InStr(Suchfeld, ",") - 1))
End If
For Each ws In ThisWorkbook.Worksheets
Set objCell = ws.Cells.Find(What:=Suchfeld, _
LookIn:=xlValues, LookAt:=xlPart, MatchCase:=False)
If Not objCell Is Nothing Then
Adr1 = objCell.Address
FindTxt = Empty
Do
If Txt2 = Empty Or InStr(objCell, Txt2) Then
FindTxt = FindTxt & objCell.Address(0, 0) & "   " & objCell.Value & vbLf
End If
Set objCell = ws.Cells.FindNext(objCell)
Loop Until Adr1 = objCell.Address
'MsgBox "Gefunden in Tabelle " & ws.Name & " in Zelle " & objCell.Address
ok = MsgBox("Gefunden in Tabelle:  " & ws.Name & vbLf & FindTxt, vbOKCancel)
If ok = vbCancel Then Exit Sub
End If
Next ws
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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