AW: Du hast Recht
30.07.2007 10:44:00
Hajo_Zi
Hallo Kurt,
ich habe mal gestern gesucht und ein Codeanstz von Beverly (Karin) gefunden. Den hääte ich als Ansatz nnutzt zur Lösung des Problem. Da Du nicht gewllt warst ein Beispiel hochzuladen und ich es ablehne so was nachzubauen, ein Nachbau sieht anders aus als das Originla. Bleibt Dir nur übrig den Code seler anzupassen.
Sub ChangeFilters()
'* 08.12.06 *
'* erstellt von Karin, http://beverly.excelhost.de*
'* beverly@excelhost.de *
Dim wsTabelle As Worksheet
Dim inFilter As Integer
Dim filterArray()
Set wsTabelle = Worksheets("Adresse")
Application.EnableEvents = False
With wsTabelle.AutoFilter
With .Filters
ReDim filterArray(1 To .Count, 1 To 3)
For inFilter = 1 To .Count
With .Item(inFilter)
If .On Then
On Error Resume Next
filterArray(inFilter, 1) = .Criteria1
If .Operator Then
filterArray(inFilter, 2) = .Operator
filterArray(inFilter, 3) = .Criteria2
End If
End If
End With
Next
End With
End With
With wsTabelle
For inFilter = LBound(filterArray()) To UBound(filterArray())
' Original
If IsNumeric(filterArray(inFilter, 1)) Then
.Cells(6, inFilter) = filterArray(inFilter, 1)
Else
.Cells(6, inFilter) = Mid(filterArray(inFilter, 1), 2)
End If
'' nur erstes Kriterim wird ausgelesen
'' bei >= wird das erste Zeichen abgeschnitten, bei nur gleich das "="
' .Cells(106, inFilter) = Mid(filterArray(inFilter, 1), 2)
'' mit Operator wird Datum als Zahl angezeigt
'' .Cells(106, inFilter) = "'" & filterArray(inFilter, 1)
If filterArray(inFilter, 1) 0 Then
.Cells(106, inFilter).Interior.ColorIndex = 4
Else
.Cells(106, inFilter).Interior.ColorIndex = xlNone
End If
Next inFilter
End With
Application.EnableEvents = True
Set wsTabelle = Nothing
End Sub
Gruß Hajo