Hi Leute,
wie kann ich abfragen welche Bedingte Formatierung zutrifft?
ich habe mehrer Zellen und je nach wert drei zustande weiß rot grün. Per code möchte ich bei rot CheckBoxen in einem Dialog auf True setzten.
Was ich bis jetzt gefunden habe ist XSheetConditionalEntry damit kann man den getStyleName abfragen.
Mein Problem ist das ich nicht weis wie
Für jede Hilfe bin ich Dankbar.
Gruß navy-cis
Calc: Bedingte Formatierung abfragen
Moderator: Moderatoren
Calc: Bedingte Formatierung abfragen
LG n-cis
Re: Calc: Bedingte Formatierung abfragen
Hallo!
Mit folgendem Code kannst die Zellvorlage der Bedingung 1 auslesen
Auf diesem Weg kannst du auch andere Teile der Bedingung auslesen. Leider habe ich keinen direkten Weg gefunden, festzustellen, welche der vorgegebenen Bedingungen erfüllt ist und welcher nicht. Nur den indirekten Weg, dass das Makro das selbst über die Zellwerte ermittelt. Aber das hast du wohl nicht gemeint.
Gruß
Charly
Mit folgendem Code kannst die Zellvorlage der Bedingung 1 auslesen
Code: Alles auswählen
Sub VorlageSuchen()
Doc = ThisComponent
Zelle = Doc.getCurrentSelection
Bedingung = Zelle.ConditionalFormat
Bedingungen = Bedingung.getElementNames()
Bed1 = Bedingung.getByName(Bedingungen(0))
Vorlage = Bed1.getStyleName()
MSGBox(Vorlage)
End Sub
Gruß
Charly
Re: Calc: Bedingte Formatierung abfragen
Hallo!
Ich habe meinen Code erweitert. Damit kann ich auch die Bedingung abfragen und feststellen welche Bedingung erfüllt ist. Ich habe mich aber auf drei Operatoren beschränkt:
Vielleicht hilft dir das weiter. Ich hoffe es ist kein Fehler drin. Ich konnte ihn nicht mehr vollständig testen.
Gruß
Charly
Ich habe meinen Code erweitert. Damit kann ich auch die Bedingung abfragen und feststellen welche Bedingung erfüllt ist. Ich habe mich aber auf drei Operatoren beschränkt:
Code: Alles auswählen
Sub VorlageSuchen()
Gleich = com.sun.star.sheet.ConditionOperator.EQUAL
Gross = com.sun.star.sheet.ConditionOperator.GREATER
Klein = com.sun.star.sheet.ConditionOperator.LESS
NichtGleich = com.sun.star.sheet.ConditionOperator.NOT_EQUAL
GrossGleich = com.sun.star.sheet.ConditionOperator.GREATER_EQUAL
KleinGleich = com.sun.star.sheet.ConditionOperator.LESS_EQUAL
Doc = ThisComponent
Zelle = Doc.getCurrentSelection
Wert = Zelle.string
Bedingung = Zelle.ConditionalFormat
Anzahl = Bedingung.getcount()
If Anzahl = 0 then
MSGBOX ("Es gibt keine Bedingungen")
exit sub
end if
Bedingungen = Bedingung.getElementNames()
For I = 0 to Anzahl - 1
Bed = Bedingung.getByName(Bedingungen(I))
Operator = Bed.getOperator
Select Case Operator
Case Gleich
BedWert = Bed.getFormula1
If Wert = BedWert then
Vorlage = Bed.getStyleName()
exit For
end if
Case Gross
BedWert = Bed.getFormula1
If Wert > BedWert then
Vorlage = Bed.getStyleName()
exit For
end if
Case Klein
BedWert = Bed.getFormula1
If Wert < BedWert then
Vorlage = Bed.getStyleName()
exit For
end if
end Select
next
MSGBox(Vorlage)
End Sub
Vielleicht hilft dir das weiter. Ich hoffe es ist kein Fehler drin. Ich konnte ihn nicht mehr vollständig testen.
Gruß
Charly