Re: bedingte Formatierung und Kommentar
22.02.2003 09:21:33
Ramses
Hallo Peter,prinzipiell ist mit VBA alles möglich,... wenn du allerdings noch mit EXCEL arbeiten willst, würde ich das lassen.
Du musst nach jeder Zell- oder Wertänderung jede einzelne Zelle mit aufwändigen WENN-Prüfungen checken ob die Bedingte Formatierung zutrifft oder nicht.
Für ein Arbeiten bleibt dann keine Zeit mehr, weil VBA zuviel Rechenzeit verbraucht.
Das hier ist die Prüfung auf das Zutreffen einer Bedingten Formatierung nur für eine einzelne Zelle:
Sub BedingungeFormatierungErfüllt()
'JensF
Dim c As Range
Dim x As Long
Dim Treffer As Boolean
Dim Nummer As Long
Dim F As Double
Set c = ActiveCell
Application.ReferenceStyle = xlR1C1
If c.FormatConditions.Count = 0 Then
MsgBox "Keine bedingte Formatierung enthalten"
Exit Sub
End IfFor x = 1 To c.FormatConditions.Count
With c.FormatConditions(x)
If .Type = 2 Then 'Formelbedingung
Names.Add Name:="testname", RefersToR1C1Local:=ActiveCell.FormatConditions(x).Formula1
If [testname] = True Then
Treffer = True
Nummer = x
Names("Testname").Delete
Else
Names("Testname").Delete
End If
Exit For
ElseIf .Type = 1 Then '"Wert-Ist" Bedingung
F = CDbl(.Formula1)
Select Case .operator
Case xlBetween
If c.Value >= F And c.Value <= CDbl(.Formula2) Then
Treffer = True: Nummer = x: Exit For
End If
Case xlEqual
If c.Value = F Then
Treffer = True: Nummer = x: Exit For
End If
Case xlGreater
If c.Value > F Then
Treffer = True: Nummer = x: Exit For
End If
Case xlGreaterEqual
If c.Value > F Then
Treffer = True: Nummer = x: Exit For
End If
Case xlLess
If c.Value < F Then
Treffer = True: Nummer = x: Exit For
End If
Case xlLessEqual
If c.Value <= F Then
Treffer = True: Nummer = x: Exit For
End If
Case xlNotBetween
If c.Value <= F Or c.Value >= CDbl(.Formula2) Then
Treffer = True: Nummer = x: Exit For
End If
Case xlNotEqual
If c.Value <> F Then
Treffer = True: Nummer = x: Exit For
End If
End Select
End If
End With
Next
If Treffer = True Then
MsgBox "Bedingung " & Nummer & " ist erfüllt"
Else
MsgBox "keine Bedingung erfüllt"
Exit Sub
End If
Application.ReferenceStyle = xlA1
End Sub
Code eingefügt mit Syntaxhighlighter 1.16
Das ganze musst du für jede einzelene Zelle deines Arbeitsblattes vornehmen und dann auch noch die Kommentartexte ändern.
Gruss Rainer