Hallo,
ich habe ein interessantes Problem in VBA mit Excel 2003.
In einer Tabelle habe ich eine Übersicht, die ich automatisch sortiert haben möchte. Dazu habe ich - einem Snippet von stackoverflow - in dem Tabellenblatt folgenden Code eingefügt:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim SortRange As Range
Set SortRange = Range(("A1"), Cells(Rows.Count, 78))
SortRange.Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub Das funktioniert soweit problemlos und genau nach meinen Wünschen.
In der Tabelle werden bestimmte Eigenschaften u.a. durch die Hintergrundfarbe einer Zelle gepflegt. Ich habe nun eine Spalte hinzugefügt, in der steht ob eine bestimmte Zelle der Zeile grün ist oder nicht.
Dazu habe ich in einem Modul folgenden Einzeiler definiert:
Function IsDigital(Cell As Range)
IsDigital = (Cell(1, 1).Interior.ColorIndex = 35)
End Function und rufe ihn in der Tabelle über
=IsDigital(D3) auf.
In der Tabelle erscheint aber statt erwartet WAHR oder FALSCH nur #WERT! Eine kurze Fehleranalyse brachte folgendes zu Tage:
1) Im Formelfenster von Excel gibt die Funktion den korrekten Wert zurück.
2) Kommentiere ich die AutoSort-Funktion aus, funktioniert die Formel korrekt und in der Tabelle stehen die korrekten Werte
3) Kommentiere ich die AutoSort-Funktion wieder ein und ändere die Funktion zu
Function IsDigital(Cell As Range)
IsDigital = (Cell(1, 1).Value)
End Function dann steht in der entsprechenden Zelle der korrekte Wert.
Es scheint mir also, dass ich der .Interior-Teil mit der Sortierfunktion nicht verträgt.
Nun frage ich mich zwei Dinge:
a) Kennt jemand das Problem?
b) Wie löse ich es, dass ich AutoSort _und_ die IsDigital-Funktion gleichzeit haben kann?
Viele Grüße,
Rico
____________________________________________________
"Mein Leipzig lob' ich mir, es ist ein Klein-Paris" (aus: "Faust")
|