Hallo Rudolf,
ich habe das jetzt über eine Userform mit 6 Textboxen realisiert. Die Textboxen auf der Userform musst du umbenennen in NummerA, NummerB, Vorname, Nachname, Wohnort, Geschlecht.
Dann noch eine Befehlsschaltfläche auf die Userform und den folgenden Code in die Befehlsschaltfläche kopieren. Doppelklick auf die Befehlsschaltfläche und den Code dort rein kopieren.
Dim loLetzte As Long
Dim strNummerA As String
Dim strNummerB As String
Dim strVorname As String
Dim strNachname As String
Dim strWohnort As String
Dim strGeschlecht As String
With Worksheets("Tabelle1") 'anpassen
'## Ermitteln der letzten belegten Zelle in Spalte A
loLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row
'## Variablen mit den Daten aus den Textboxen füllen
strNummerA = Me.NummerA
strNummerB = Me.NummerB
strVorname = Me.Vorname
strNachname = Me.Nachname
strWohnort = Me.Wohnort
strGeschlecht = Me.Geschlecht
'## Wenn gefiltert, dann alle Daten anzeigen
If .AutoFilterMode Then .AutoFilter.ShowAllData
'## Autofilter setzen
.Range("$A$1:$F$" & loLetzte).AutoFilter
'## Wenn Werte in den Variablen, dann danach filtern
If Not strNummerA = vbNullString Then
.Range("$A$1:$F$" & loLetzte).AutoFilter Field:=1, Criteria1:=strNummerA
End If
If Not strNummerB = vbNullString Then
.Range("$A$1:$F$" & loLetzte).AutoFilter Field:=2, Criteria1:=strNummerB
End If
If Not strVorname = vbNullString Then
.Range("$A$1:$F$" & loLetzte).AutoFilter Field:=3, Criteria1:=strVorname
End If
If Not strNachname = vbNullString Then
.Range("$A$1:$F$" & loLetzte).AutoFilter Field:=4, Criteria1:=strNachname
End If
If Not strWohnort = vbNullString Then
.Range("$A$1:$F$" & loLetzte).AutoFilter Field:=5, Criteria1:=strWohnort
End If
If Not strGeschlecht = vbNullString Then
.Range("$A$1:$F$" & loLetzte).AutoFilter Field:=6, Criteria1:=strGeschlecht
End If
End With
'## Userform schließen
Unload Me
Gruß Werner
|