von mikeleb » Sa, 26.04.2025 14:14
Hallo,
Code: Alles auswählen
Dim oCondition(3) as New com.sun.star.beans.PropertyValue
Damit wird ein Array namens oCondition mit 4 Elementen (0, 1, 2, 3) dimensioniert, wobei jedes Element ein PropertyValue ist, d. h. au seinem Namen und einem Value besteht. Eine Bedingung muss ein solches Array sein
Mit (z. B.)
Code: Alles auswählen
oCondition(0).Name = "Operator"
oCondition(0).Value = com.sun.star.sheet.ConditionOperator.LESS
oCondition(1).Name = "Formula1"
oCondition(1).Value = "120"
oCondition(2).Name = "Formula2"
oCondition(2).Value = ""
oCondition(3).Name = "StyleName"
oCondition(3).Value = "warnGELB"
wird eine Bedingung definiert (wobei die Eigenschaft "Fomlula2" hier überflüssig wäre, aber bei der nächsten, aufgrund von BETWEEN, benötigt wird).
Mit
wirt diese Bedingung dem Bereich hinzugefügt (daher ist es wichtig, dass zu Beginn zunächst alle Bedingungen gelöscht werden - man könnte aber auch gezielt einzelne entfernen).
Per Makro lassen sich daher beliebig viele Bedingungen setzen. Die Beschränkung auf 3 exisitiert nur in der Oberfläche von AOO. In LibreOffice ist diese Beschränkung längst gefallen.
In deinem konkreten Fall, werden für die nächsten Bedingungen nur die .Value geändert, da die Namen ja bereits im Rahmen der ersten Bedingung im Array gesetzt wurden.
Hallo,
[code]Dim oCondition(3) as New com.sun.star.beans.PropertyValue[/code]
Damit wird ein Array namens oCondition mit 4 Elementen (0, 1, 2, 3) dimensioniert, wobei jedes Element ein PropertyValue ist, d. h. au seinem Namen und einem Value besteht. Eine Bedingung muss ein solches Array sein
Mit (z. B.)
[code] oCondition(0).Name = "Operator"
oCondition(0).Value = com.sun.star.sheet.ConditionOperator.LESS
oCondition(1).Name = "Formula1"
oCondition(1).Value = "120"
oCondition(2).Name = "Formula2"
oCondition(2).Value = ""
oCondition(3).Name = "StyleName"
oCondition(3).Value = "warnGELB"[/code]
wird eine Bedingung definiert (wobei die Eigenschaft "Fomlula2" hier überflüssig wäre, aber bei der nächsten, aufgrund von BETWEEN, benötigt wird).
Mit
[code]oConditionalForm.addNew(oCondition)[/code] wirt diese Bedingung dem Bereich hinzugefügt (daher ist es wichtig, dass zu Beginn zunächst alle Bedingungen gelöscht werden - man könnte aber auch gezielt einzelne entfernen).
Per Makro lassen sich daher beliebig viele Bedingungen setzen. Die Beschränkung auf 3 exisitiert nur in der Oberfläche von AOO. In LibreOffice ist diese Beschränkung längst gefallen.
In deinem konkreten Fall, werden für die nächsten Bedingungen nur die .Value geändert, da die Namen ja bereits im Rahmen der ersten Bedingung im Array gesetzt wurden.