Hallo zusammen,
Ich hab nun schon einige Zeit erfolglos damit verbracht mein nachstehendes Problem selbst zu lösen, allerdings bin ich relativ neu auf dem Gebiet der VBA unterwegs und hoffe durch die hier im Forum anwesende Experten Hilfe zu erhalten.
Problembeschreibung:
Die Ausgangssituation ist eine Tabelle mit 4 Spalten. Die Überschriften beginnen bei B3 (Bestell-Nr.), C3 (Kunde), D3 (Ware) und E3 (Datum).
Die Daten konnten bisher über den normalen Gebrauch des Autofilters genutzt werden. Zur Vereinfachung der Filterauswahl wollte ich die jeweiligen darüberliegenden Zellen direkt zur Eingabe nutzen. Dies funktioniert auch in den Spalten Kunde und Ware sehr gut. Sobald ein Eintrag mit "Enter" bestätigt wird, ist die Auswahl sichtbar und nach dem Löschen der Zelle ist der Autofilter zurückgesetzt.
Bei der Spalte "Bestell-Nr", wo nur Zahlen beinhaltet sind, führt die Zelleingabe zu keinem Ergebnis, ebenso wie beim Datum. Der Autofilter ist dann zwar auch aktiv, liefert jedoch kein sichtbares Ergebnis.
Hoffentlich war meine Beschreibung einigermassen verständlich und mein "Problem" nachvollziehen.
Der Code ist im Tabellenblatt hinterlegt:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target.Row = 2 Then
If Target.Value <> "" Then
Selection.AutoFilter Field:=1, Criteria1:=Range("B2").Value 'Auswahl Best-Nr
Else
FilterAufheben
End If
End If
If Target.Column = 3 And Target.Row = 2 Then
If Target.Value <> "" Then
Selection.AutoFilter Field:=2, Criteria1:=Range("C2").Value 'Auswahl Kunde
Else
FilterAufheben
End If
End If
If Target.Column = 4 And Target.Row = 2 Then
If Target.Value <> "" Then
Selection.AutoFilter Field:=3, Criteria1:=Range("D2").Value 'Auswahl Ware
Else
FilterAufheben
End If
End If
If Target.Column = 5 And Target.Row = 2 Then
If Target.Value <> "" Then
Selection.AutoFilter Field:=4, Criteria1:=Range("E2").Value 'Auswahl Datum
Else
FilterAufheben
End If
End If
End Sub
Sub FilterAufheben()
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData 'Autofilterauswahl aufheben
End Sub
Für eure Hilfe bedanke ich mich schonmal im Voraus.
Gruß
Jörg
|