Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1720to1724
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
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

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
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

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige