Lieber Jürgen, lieber Carolus,
ich hoffe Ihr beobachtet diese Frage noch. Vielen Dank erstmal. Ich habe zwar keine Ahnung warum man zuerst eine Pseudozelle erstellen muss und diese dann wieder löschen ... aber es funktioniert schon ... ansatzweise. Leider konnte ich den Code noch nicht so anpassen dass er in meinem Code macht was er soll. Problematisch ist
1. ich weiss nicht was diese beiden Zeilen bewirken:
oDocument.CurrentController.Select(oCell)
...
oDocument.CurrentController.Select(-1)
2. ich müsste den Bereich als Position angeben und nicht als Name, das gelingt mir noch nicht zufriedenstellend:
ibereich() = array("A1:A3","C1:C3")'Zellbereiche für BF
for i = 0 to ubound(ibereich())
bereich = oDocument.sheets(iTab).getcellrangebyname(ibereich(i)).getrangeaddress
formatierung(bereich,iTab)
next i
....
with bereich
erstSp = .startColumn
erstzei = .startRow
endSpa = .EndColumn
endZei = .EndRow
end with
dim Zellformat(3) as New com.sun.star.beans.PropertyValue
Zellformat(0).Name = "Operator"
Zellformat(0).value = com.sun.star.sheet.ConditionOperator.EQUAL
Zellformat(1).Name = "Formula1"
Zellformat(2).Name = "StyleName"
for sp = erstSp to endSpa
for ze = erstzei to endZei
BedingtFormat = oDocument.sheets(tabindex).getcellbyPosition(sp,ze).ConditionalFormat
ocell2 = thisComponent.sheets(tabindex).getcellRangebyName(oPseudoCell).string
Zellformat(1).value = ocell2
Zellformat(2).value = ocell2
BedingtFormat.addNew(Zellformat())
thiscomponent.sheets(tabindex).getcellbyPosition(sp,ze).ConditionalFormat = BedingtFormat
next ze
next sp
könnte man nicht in der roten Zeile den gewünschten Bereich angeben und die Hälfte vom Rest weglassen? (Mir gelingt es allerdings nicht ... ich bin aber blutiger Anfänger)
3. Hier müsste man doch auch einen anderen Wert eingeben können:
oPseudoCell = "E5"
wenn ich hier z.B. "AA0" eingebe, klappt das nicht.
4. Warum ist das eine Bereich und nicht eine Zelle:
oCell = osheet.getcellRangebyName(oPseudoCell)
?
Es wäre schön wenn Ihr mir da weiterhelfen könntet!
Grüße
Pit