Berechnungen mit VBA
27.10.2005 18:18:18
Sabine
ich habe ein Problem mit einem Makro, den ich gerade schreibe. Dieser Makro nimmt eine Zelle und subtrahiert den Wert einer anderen Zelle. Ist die Differenz kleiner als -0,2 soll die Zelle rot gefärbt werden. Ist die Differenz >= -0,2~f~ aber ~f~< 0,2~f~ soll die Zelle gelb, und für den Fall dass die Differenz ~f~>= 0,2 ist soll die Zelle grün gefärbt werden.
Hier mein Problem: Die Differenz wird immer richtig berechnet. Aber die Einfärbung für den Fall dass die Differenz -0,2 beträgt ist von Fall zu Fall unterschiedlich. - Ich habe nur exakte Werte mit einer Stelle nach dem Komma benutzt und mir auch die Differenz ausgeben lassen. Sie stimmt, aber die Case Anweisung funktioniert nicht immer. Ich habe auch schon die Reihenfolge vertauscht, aber das hat auch nichts gebracht. Auch eine Multiplikation des Wertes c mit 10 brachte keine Veränderung.
Auch das Aufnehmen der Anweisung
Case -0.2
x.Interior.ColorIndex = 6 ' Gelb
x.NumberFormat = "0.0"
brachte keine Veränderung!
Ich bin für jede Hilfe dankbar!!!!
Viele Grüße
Sabine
Hier mein Makro:
For Each x In Selection
c = x - Cells(x.Row, 2)
Select Case c
Case 0.2 To 4
x.Interior.ColorIndex = 35 ' Grün
x.NumberFormat = "0.0"
Case -4 To -0.2
x.Interior.ColorIndex = 3 ' Rot
x.NumberFormat = "0.0"
Case -0.2 To 0.2
x.Interior.ColorIndex = 6 ' Gelb
x.NumberFormat = "0.0"
Case Else
x.Interior.ColorIndex = xlNone
End Select
Cells(x.Row + 20, x.Column) = c
Next x