FormatConidtions Formula1 auslesen, Select nötig?
08.01.2008 20:41:45
Reinhard
wenn ich Formula1 der bed. Formatierung auslese so wird mir nicht die Formel angezeigt, sondern die Formel wird der gerade aktiven Zelle angepasst angezeigt.
Beispiel, A1 hat die Formel (in der bed. Formatierung.):
=A1>5
dies wird nicht angezeigt, sondern es erscheint z.B.
=D5>5
wenn zum Zeitpunkt der Makroausführung gerade D5 markiert ist.
Wenn ich im Makrodurchlauf immer pro Zellencheck die Zelle selectiere funktioniert der Code, nur, geht es auch ohne Select?
Ich habe das gerade hier mit Xl2002 getestet, es reagiert wie XL97, also daran liegt es nicht.
Danke ^ Gruß
Reinhard
Sub BedingteFormatierungAuslesen(ByRef Bereich As Range)
Dim Zelle As Range
Dim Zei, B, F
On Error Resume Next
For Each Zelle In Bereich
'Zelle.Select 'ohne select Fehler bei Formula1 ?
With Zelle.FormatConditions
Zei = .Parent.Row
For B = 1 To .Count
If .Item(B).Type = 2 Then
Cells(Zei, 2 + (B - 1) * 6) = "Formel ist"
'MsgBox .Item(B).Formula1
Cells(Zei, 3 + (B - 1) * 6) = "'" & .Item(B).Formula1
End If
If .Item(B).Type = 1 Then
Cells(Zei, 2 + (B - 1) * 6) = "Zellwert ist"
Cells(Zei, 4 + (B - 1) * 6) = .Item(B).Formula1
Select Case .Item(B).Operator
Case xlBetween
Cells(Zei, 3 + (B - 1) * 6) = "zwischen"
Cells(Zei, 5 + (B - 1) * 6) = "und"
Cells(Zei, 6 + (B - 1) * 6) = .Item(B).Formula2
Case xlEqual
Cells(Zei, 3 + (B - 1) * 6) = "gleich"
Case xlGreater
Cells(Zei, 3 + (B - 1) * 6) = "größer"
Case xlGreaterEqual
Cells(Zei, 3 + (B - 1) * 6) = "größer oder gleich"
Case xlLess
Cells(Zei, 3 + (B - 1) * 6) = "kleiner"
Case xlLessEqual
Cells(Zei, 3 + (B - 1) * 6) = "kleiner oder gleich"
Case xlNotBetween
Cells(Zei, 3 + (B - 1) * 6) = "nicht zwischen"
Case xlNotEqual
Cells(Zei, 3 + (B - 1) * 6) = "nicht gleich"
End Select
End If
Next B
End With
Next Zelle
End Sub
Sub test()
Call BedingteFormatierungAuslesen(Range("A1:A5"))
End Sub