Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
936to940
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
936to940
936to940
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

FormatConidtions Formula1 auslesen, Select nötig?

FormatConidtions Formula1 auslesen, Select nötig?
08.01.2008 20:41:45
Reinhard
Hallo Wissende,
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


7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Ja, das ist immer so, übrigens auch bei Namen,...
08.01.2008 21:03:32
Luc:-?
...Reinhard!
Wird von der xlIntelligenz verursacht [xl denkt mit... ;-)].
Da wirst du wohl etwas mehr Aufwand treiben und den Abstand zwischen aktueller Zelle und jeweiliger Zelle in Bereich ermitteln müssen. Mit den erhaltenen Werten könnte dann der Bezug in der Bedingtformatierungsformel geändert wdn.
Gruß Luc :-?

AW: Ja, das ist immer so, übrigens auch bei Namen,...
08.01.2008 21:11:00
Reinhard
Hallo Luc,
Select reicht ja für meine Zwecke, ich wollte ja nur wissen ob es ohne Select geht und das geht wohl nicht, okay, ist halt so.
Dankeschön
Gruß
Reinhard

AW: FormatConidtions Formula1 auslesen, Select nötig?
08.01.2008 21:27:00
Daniel
Hi
dein Zellbezug in der Bedingten Formatierung ist ein relativer Zellbezug.
daher ist in der A1-Schreibweise die Formel immer von der gerade Aktiven Zelle abhängig.
willst du formelmäßig unabhängig von der gerade aktiven Zelle sein musst du mit der Z1S1-Schreibweise für den Zellbezug arbeiten, weil sich nur in dieser Schreibweise relative und absolute Zellbezüge eindeutig und korrekt und unabhängig von der aktiven Zelle darstellen lassen.
für normale Formeln gäbs hier die funtion .FormulaR1C1 bzw .FormulaR1C1Local.
da es das bei bedingten Formatierungen nicht gibt, musst du unter Extras-Optionen-Allgemein auf die Z1S1-Schreibweise umschalten.
per Makro dann mit

Application.ReferenceStyle = xlA1
Application.ReferenceStyle = xlR1C1


Gruß, Daniel

Anzeige
AW: FormatConidtions Formula1 auslesen, Select nötig?
08.01.2008 21:43:53
Reinhard
Hallo Daniel,
guter Gedanke.
Ich denke in kleinen Bereichen bin ich mit Select zufrieden.
Aber wenn mal mein Code auf Xl2007 mit 1 Mio Zeilen laufen sollte, kostet das Select viel Zeit. Da wäre es besser auf Z1S1 umzustellen, nach dem Code wieder auf A1.
Dankeschön
Reinhard

AW: FormatConidtions Formula1 auslesen, Select nötig?
08.01.2008 22:16:01
Luschi
Hallo Reinhard,
wenn Du die Formelbezüge absolut schreibst, dann geht es auch ohne 'Select';
also so: =$A$1>5
Die Dollarzeichen muß man nicht schreiben, sondern =A1 eintippen und dann die F4-Taste drücken.
Gruß von Luschi
aus klein-Paris

AW: FormatConidtions Formula1 auslesen, Select nötig?
08.01.2008 22:23:09
Daniel
Hi
die Formelbezüge im Beispiel waren aber eindeutig Relativ, und dann gehts nur mit SELECT oder mit Z1S1-Schreibweise.
Gruß, Daniel

Anzeige
AW: FormatConidtions Formula1 auslesen, Select nötig?
08.01.2008 22:30:44
Reinhard
Hallo Luschi,
ich will ja nicht bed. Formatierungen festlegen.
Ich will nur die vorhandenen bed. Formatierungen auslesen und wisssen was in der Formel= so drinsteht.
Gruß nach klaa paris
Reinhard

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige