ich suche einen Weg, mit einem Excel-Makro eine Dynamische-Suche aufzubauen.
Also nach jeder Buchstabeneingabe soll automatisch in der vorgegebenen Tabelle von gesucht und die übereinstimmenden Begriffe ausgeworfen werden.
Beispiel:
S in die Zelle eingegeben, gibt alle Begriffe aus die mit S beginnen, Su alle mit Su, Suc alle mit Suc. unsw.
Bisher habe ich mit nachfolgendem Makro gearbeitet:
Dim SpeicherPlätze As Variant
Dim GefundeneZelle As Variant
Sub SuchUndFind()
Dim MenueZelle As Variant
SpeicherPlätze = Sheets("Suchbegriffe").Range("E1").Value
If Sheets("Menue").Range("C4").Value = "" Then
Mldg = "SIE HABEN KEINEN SUCHBEGRIFF ANGEGEBEN! "
Stil = vbExclamation + vbCritical + vbDefaultButton2
Title = "Suchbegriff?"
Ergebnis = MsgBox(Mldg, Stil, Title)
Sheets("Menue").Range("C4").Select
Exit Sub
End If
Sheets("Menue").Unprotect
Sheets("Menue").Range("C6:G" & SpeicherPlätze).Value = ""
Suchwert = Sheets("Menue").Range("C4").Value
With Sheets("Suchbegriffe").Range("A:A")
Set GefundeneZelle = .Find(Suchwert, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, _
SearchDirection:=xlNext)
If GefundeneZelle Is Nothing Then
Mldg = "Der Suchbegriff ist nicht gespeichert! "
Stil = vbExclamation + vbCritical + vbDefaultButton2
Title = "Suchbegriff?"
Ergebnis = MsgBox(Mldg, Stil, Title)
Sheets("Menue").Protect
Sheets("Menue").Range("C4").Select
End If
If Not GefundeneZelle Is Nothing Then
ersteAdresse = GefundeneZelle.Address
Do
MenueZelle = Sheets("Menue").Range("A1").Value + 1
Set GefundeneZelle = .FindNext(GefundeneZelle)
If GefundeneZelle.Value = "Begriff" Then
Sheets("Menue").Range("C" & MenueZelle) = ""
Else
Sheets("Menue").Range("C" & MenueZelle) = GefundeneZelle
Sheets("Menue").Range("E" & MenueZelle) = GefundeneZelle(RowAbsolute + 1, 2)
Sheets("Menue").Range("G" & MenueZelle) = GefundeneZelle(RowAbsolute + 1, 3)
End If
Loop While Not GefundeneZelle Is Nothing And GefundeneZelle.Address ersteAdresse
Sheets("Menue").Protect
Sheets("Menue").Range("C6").Select
End If
End With
End Sub
Wie immer für jede Hilfe Dankbar
Gruß Sonnenpeter