Das unten aufgeführte Makro (ein "Webfund") wird von mir oft und gern genutzt,
um Begriffe in großen Datenbanken zu suchen. Die Eingabe des gesuchten Begriffes
erfolgt über eine Inputbox. Ich würde aber gern ein Suchformular erstellen, in dem
verschiedene Suchfunktionen aufgelistet sind.
Frage: Wie müsste der Code geändert werden, wenn ich den Suchbegriff in die Textform einer Userform eingeben und per Commandbutton starten möchte ?
Vielen lieben Dank für Eure Hilfe !
Gruß
Wolfgang
Sub Suche_Begriffe_und_färbe_Fundzellen()
'Das Makro öffnet ein Eingabefenster,in dem nach Begriffen
'in einem Tabellenblatt gesucht wird.Der Cursor springt nacheinander
'zu den Fundstellen und markiert sie farbig.
'Beim Verlassen der Zelle wird die Farbe zurückgesetzt.
'Mit dem Abbrechen-Button wird die Suche beendet.
Dim Result As Object, erg As Object, Farbe As Integer
On Error Resume Next
thing = InputBox("Bitte Suchbegriff eingeben")
Cells("A1").Select
Set erg = Cells.Find(What:=thing)
ErsteZelle = erg.Address
erg.Activate
gefunden:
If Not erg Is Nothing Then
'Färben:
Static vZelle(2) As Variant
If Not IsEmpty(vZelle(2)) Then
With vZelle(0).Interior
.Color = vZelle(1)
.Pattern = vZelle(2)
End With
End If
Set vZelle(0) = ActiveCell
With vZelle(0).Interior
vZelle(1) = .Color
Farbe = Selection.Interior.ColorIndex '
GoOn = MsgBox("Nächsten finden ?", vbOKCancel + vbQuestion, "Weitersuchen ?")
If GoOn = 1 Then
Set erg = Cells.FindNext(after:=ActiveCell)
erg.Activate
GoTo gefunden
Else
If erg Is Nothing Then
MsgBox "Nichts gefunden !", vbOKOnly + vbExclamation, "Hinweis"
End If
Weiter:
'MsgBox "Suche beendet !", vbOKOnly + vbExclamation, "Hinweis"
Selection.Interior.ColorIndex = Farbe ' 'ActiveCell.Interior.ColorIndex = xlNone
End If
End Sub