String suchen und alle anderen Zeilen ausblenden

Hallo Excelfreunde,
ich habe eine Tabelle, die in Spalte-b und Spalte-c Text und Zahlen enthält.
Nun möchte ich in Zelle F1 einen String z.B. 87 ein.
Nach Beendigung der Eingabe sollen nun nur die Zeilen angezeigt bleiben, die diesen
String an irgendeiner Stelle beinhalten.
Über eine Hilfsspalte kann ich Zeilen mit text einblenden, aber keine zahlen:
=WENN(such="";"";ZÄHLENWENN($B3:blush:C3;"*"&$F$1&"*"))

 Sub finde()
Application.ScreenUpdating = False
If Range(„such“).Value = 0 Then
 Rows(„3:100“).Hidden = False
Else
Dim a!, b!, c!, d%
     'b = Erste Zeile mit Formel
     'c = letzte zu prüfende Zeile
     'd = Spalte, in der die Zellen auf „“ überprüft werden sollen
     b = 3
     c = 100
     d = 7
          
 For a = b To c
         If Cells(a, d).Value = 0 Then Rows(a).EntireRow.Hidden = True
     Next
 End If
 End If
Application.ScreenUpdating = True
End Sub

Kann das jemand erklären, oder eine einfachere Lösung präsentieren?
Danke im Voraus

Falls ich es richtig verstanden habe:
Wenn Du die Eingabe-Zellen als „Text“ formatierst, sind auch Zahlen keine Zahlen mehr, sondern Text.

Falls ich es doch falsch verstanden habe, wäre eine kleine Beispiel-Datei mit drei, vier Eingaben hilfreich.

Hallo Dieter,

Über eine Hilfsspalte kann ich Zeilen mit text einblenden,
aber keine zahlen:
=WENN(such="";"";ZÄHLENWENN($B3:blush:C3;"*"&$F$1&"*"))

ja, das klappt nur bei Text. B:C (nachträglich) als Text formatieren bringt dir nix. VOR der Eingabe als Text formatiert würde Zählenwenn auch *Zahl* erkennen.

Mein Tipp wäre spontan, du nimmst eine Hilfsspalte mit
=Text(B3&C3;"@")
und das bis runter zu Zeile 100 kopieren. Deine Zählenwenn-Funktion beziehst du dann auf diese Hilfsspalte.

Gruß
Reinhard

VBA-Lösung
Hallo Dieter,

wenn du eine VBA-Lösung möchtest, kopiere den folgenden Code in den Codebereich des Tabellenblatts:

Private Sub Worksheet\_Change(ByVal Target As Range)
 Dim ze As Long

 If Target.Address "$F$1" Then Exit Sub
 If IsEmpty(Target) Then
 Range("A3:A100").Rows.Hidden = False
 Else
 Application.ScreenUpdating = False
 For ze = 3 To 100
 Rows(ze).Hidden = (InStr(Cells(ze, 2), Target) + InStr(Cells(ze, 3), Target) = 0)
 Next ze
 Application.ScreenUpdating = True
 End If
End Sub

Gruß, Andreas

Die VBA-Funktion macht volgendes:
in den Variablen a b c d werden die Parameter gespeichert (sieh Beschreibung der ersten drei Zeilen)
in der for next Schleife wird Zeile für Zeile der Inhalt der Spalte 7 (in Variable d) ausgelesen. Ist der Wert = 0 (value=0) , ist in der Zelle also keine Zahl, dann wird die Zeile ausgeblendet(Rows(a).EntireRow.Hidden = True)
Der Code in der For Next-Schleife wäre dann so:
If Application.WorksheetFunction.IsText (Cells(a, d)) = True Then Rows(a).EntireRow.Hidden = True
Ich hoffe, der Code stimmt. Ich konnte ihn nicht ausprobieren.