Leider kann dieser Visual Basic basierende Autofilter kein Datum sotieren(suchen).
Wie muss ich das Programm abändern, so dass ich nach einem Datum suchen kann?
Danke im voraus. Aron.
Option Explicit ' Variablendeklaration erforderlich
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'* 09.02.08 *
'* erstellt von Karin, http://beverly.excelhost.de*
'* beverly@excelhost.de *
Dim raBereich As Range
Dim raZelle As Range ' Variable für die Zelle als Range
' Wirkung des Codes auf Zeile 1 der Tabelle im Filterbereich zulassen
Set raBereich = Intersect(Target, Range(Cells(1, ActiveSheet.AutoFilter.Range(1).Column), _
Cells(1, ActiveSheet.AutoFilter.Range(1).Column + ActiveSheet.AutoFilter.Filters.Count - _
_
1)))
' Eingabe erfolgte im festgelegten Bereich
If Not raBereich Is Nothing Then
' Bildschirmaktualisierung aus
Application.ScreenUpdating = False
' Reaktion auf Eingabe abschalten
Application.EnableEvents = False
' Schleife über alle Zellen der Zeile 1 der Tabelle
For Each raZelle In raBereich
' Bezieht sich auf den Filterbereich
With ActiveSheet.AutoFilter.Range
' Eingabe wurde gelöscht
If raZelle = "" Then
' Autofilter für das betreffende Fald zurücksetzen
.AutoFilter Field:=raZelle.Column + 1 - ActiveSheet.AutoFilter.Range(1). _
Column
' in die betreffende Zelle eintragen
raZelle = "Suchbegriff eingeben"
Else
' Suchkriterium ist eine Zahl
If IsNumeric(raZelle) Then
' Autofilter für das betreffende Feld setzen, Filterkriterium "entspricht" _
_
.AutoFilter Field:=raZelle.Column + 1 - ActiveSheet.AutoFilter.Range(1). _
_
Column, _
Criteria1:="=" & raZelle
Else
' Autofilter für das betreffende Feld setzen, Filterkriterium "Enthält"
.AutoFilter Field:=raZelle.Column + 1 - ActiveSheet.AutoFilter.Range(1). _
_
Column, _
Criteria1:="=*" & raZelle & "*"
End If
End If
End With
Next raZelle
' Reaktion auf Eingabe einschalten
Application.EnableEvents = True
' Bildschirmaktualisierung ein
Application.ScreenUpdating = True
End If
End Sub