ich m�chte eine bedingte Formatierung mit VBA steuern. Habe im Internet den
untenstehenden Code gefunden und die Teile ab ...,xlequal,.. angepasst.
Jetzt erkennt Excel das nur als Text. Wie bringe ich ihm nun bei Werte >0,01
und <0,9 entsprechend zu formatieren.
�ber einen kompletten Code w�re ich nat�rlich auch dankbar :-)
Vielen Dank und Gru�
Boris
P.S. Hier der Code
Public Sub BedingtesAmpelFormat()
Dim Wert As Variant
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
'*** Bedingte Formatierung anlegen
.FormatConditions.Delete
' Bedingung f�r roten Zellhintergrund
With .FormatConditions.Add(xlCellValue, xlEqual, ">0,01 and <0,9")
.Font.ColorIndex = 3
.Interior.ColorIndex = 3
End With
' Bedingung f�r gr�nen Zellhintergrund
With .FormatConditions.Add(xlCellValue, xlEqual, ">=0,9 and <0,94")
.Font.ColorIndex = 50
.Interior.ColorIndex = 50
End With
' Bedingung f�r gelben Zellhintergrund
With .FormatConditions.Add(xlCellValue, xlEqual, ">= 0,94 and <=1")
.Font.ColorIndex = 6
.Interior.ColorIndex = 6
End With
End With
End Sub
Die Tastatur von Boris Helm wurde wie folgt gedr�ckt:
In A1 f�hre aus:
Sub Makro1()
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=UND(A1>0,01;0,9>A1)"
Selection.FormatConditions(1).Interior.ColorIndex = 3
End Sub
... denn das, was Du willst ...
Sub Makro2()
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _
Formula1:="0,01", Formula2:="0,9"
Selection.FormatConditions(1).Interior.ColorIndex = 3
End Sub
... haut f�r Intervalle nicht hin. Es hei�t n�mlich nur "zwischen" (beide
Randwerte inklusive!), statt sauber:
Von ... bis unter ... oder
Von �ber ... bis ...
--
Moin+Gruss Alexander - MVP for MS Excel - www.xxcl.de - mso2000sp3 --7-2
> ich m�chte eine bedingte Formatierung mit VBA steuern. Habe im Internet
> den untenstehenden Code gefunden und die Teile ab ...,xlequal,.. angepasst.
> Jetzt erkennt Excel das nur als Text. Wie bringe ich ihm nun bei Werte
> >0,01 und <0,9 entsprechend zu formatieren.
Das geht so nicht, es gibt beim Vergleich der Zellwerte nur die
Operatoren xlBetween, xlEqual, xlGreater, xlGreaterEqual, xlLess,
xlLessEqual, xlNotBetween oder xlNotEqual.
Mit AND ist da nichts zu machen, wohl aber mit Between. Hier musst Du
jedoch die Grenzen um ein Minimum verschieben um ein >0,01 zu emulieren.
Und Du musst die Reihenfolge der Bedingungen �ndern, die gro�en Zahlen
zuerst.
Andreas.
Sub BedingtesAmpelFormat()
Dim R As Range
Const Delta As Double = 0.000000000001
'Sind gerade Zellen markiert?
If Not TypeOf Selection Is Range Then Exit Sub
'Den aktuellen Bereich ermitteln
Set R = Selection
'Die bedingte Formatierung eines Bereiches...
With R.FormatConditions
'Evt. vorhandene Bedingungen l�schen
.Delete
'Bedingungen hinzuf�gen
.Add Type:=xlCellValue, Operator:=xlBetween, _
Formula1:="0,94", Formula2:="1"
.Add Type:=xlCellValue, Operator:=xlBetween, _
Formula1:="0,9", Formula2:="0,94"
.Add Type:=xlCellValue, Operator:=xlBetween, _
Formula1:="0,01" + Delta, Formula2:="0,9"
'Farben festlegen
.Item(1).Interior.ColorIndex = 6
.Item(2).Interior.ColorIndex = 50
.Item(3).Interior.ColorIndex = 3
End With
End Sub