dynamischen Autofilter- Datum suchen lassen
31.03.2008 13:04:00
Aron
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