AW: Volltext Suche mit Userform
14.08.2006 13:02:11
fcs
Hallo José,
hier ein Beispiel-Code, wie man die Suche realiseren kann. Die Namen der Text-Boxen und der Commandbuttons muss du natürlich anpassen.
gruss
Franz
Private Sub CB_Starten_Click()
Me.tbTabelle.Value = ""
Me.tbZeile.Value = ""
Me.tbProdukt.Value = ""
Me.tbGefunden.Value = ""
Call Suchen(tbSuchen.Value)
End Sub
Private Sub CB_Schliessen_Click()
Me.Hide
End Sub
Private Sub UserForm_Initialize()
'Userform verschieben, wg. Anzeige Messagebox
Me.Top = 100
Me.Left = 100
End Sub
Private Sub Suchen(Suchen As Variant)
'Sucht im allen Blättern nach dem Suchbegriff
Dim wksAkt As Worksheet, Zelle As Range, gefunden As Boolean
Dim Bereich As Range, Adresse1 As String, Zeile As Long
gefunden = False
For Each wksAkt In ThisWorkbook.Worksheets
ZeileAkt = 1 'Zeile ab der im aktuellen Blatt die Suche beginnen soll
With wksAkt
' Datenbereich im aktuellen Blatt
Set Bereich = .Range(.Cells(ZeileAkt, 1), .Cells(.UsedRange.Row + .UsedRange.Rows.Count - 1, _
.UsedRange.Column + .UsedRange.Columns.Count - 1))
' Suchbegriff suchen
Set Zelle = Bereich.Find(What:=Suchen, LookIn:=xlValues, Lookat:=xlPart, SearchOrder:=xlByRows)
If Not Zelle Is Nothing Then
gefunden = True
Adresse1 = Zelle.Address
Zeile = Zelle.Row
Do
Me.tbTabelle.Value = .Name
Me.tbZeile.Value = Zelle.Row
Me.tbProdukt.Value = .Cells(Zelle.Row, 1).Value
Me.tbGefunden.Value = Zelle.Value
If MsgBox("Weiter suchen?", vbYesNo, "Suchen in allen Blättern") = vbNo Then Exit Sub
Set Zelle = Bereich.FindNext(After:=Zelle)
Loop Until Zelle.Address = Adresse1
End If
End With
Next wksAkt
If gefunden = False Then
MsgBox "Der Suchbegriff: """ & Suchen & """ wurde nicht gefunden"
End If
End Sub