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