bedingte Formatierung

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

moritz
*****
Beiträge: 216
Registriert: Mi, 20.10.2004 20:54

bedingte Formatierung

Beitrag von moritz »

Hallo, hoffentlich kann mir bei dem folgenden Problem jemand helfen und ich habe keinen bug in OO-Calc 2.3.1 XP gefunden.
Mit einem Makro möchte ich bedingte Formatierungen eintragen, hier ein Ausschnitt daraus

oBedingungen = oSheet.getCellByPosition (iSpalte,lZeile).getPropertyValue( "ConditionalFormat" )
oBedingungen.clear
oBedingung(0).Name = "Operator"
oBedingung(0).Value = com.sun.star.sheet.ConditionOperator.GREATER
oBedingung(1).Name = "Formula1"
oBedingung(1).Value = "MITTELWERT($Druckbild.$D$13:$O$13)"
oBedingung(2).Name = "StyleName"
oBedingung(2).Value = "überDurchschnitt"
oBedingungen.addNew( oBedingung )
oSheet.getCellByPosition (iSpalte,lZeile).setPropertyValue( "ConditionalFormat", oBedingungen )
Nach Ausführung des Makros ist erstmal nicht zu sehen. Wenn man dann aber die Zelle anklickt, ist die Bedingung eingetragen und bei OK wird die bedingte Formatierung auch korrekt ausgeführt.
aber eigentlich muß doch die Bedingung ausgeführt werden, ohne daß noch ein Eingriff notwendig ist. Hat jemand einen Tip dazu?
Vielen Dank für Eure Mühe, Moritz
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: bedingte Formatierung

Beitrag von komma4 »

Du solltest einen Bereich und keine Zellposition setzen, siehe Bedingte Formatierung per Makro setzen

Klappt es dann?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
moritz
*****
Beiträge: 216
Registriert: Mi, 20.10.2004 20:54

Re: bedingte Formatierung

Beitrag von moritz »

Vielen Dank für Deine Antwort. Ich habe jetzt einen Bereich für die Bedingung gesetzt.
Das Ergebnis ist aber das Gleiche. Das Problem muß mit der Formel zu tun haben.
oBedingung(1).Value = "MITTELWERT($Druckbild.$D$13:$O$13)"
Wenn ich in die Zelle P13 die Formel "=MITTELWERT($D$13:$O$13)" einsetze und dann die Bedingung verwende:
oBedingung(1).Value = "P13" funktioniert es.
Leider bin ich mit diesem Notbehelf nicht ganz glücklich. Ich muß halt diese Spalte ausblenden.
Moritz
moritz
*****
Beiträge: 216
Registriert: Mi, 20.10.2004 20:54

englische Funktionen

Beitrag von moritz »

Hallo, ganz konnte ich das Problem zwar noch nicht lösen, wen´s aber interessiert:
man muß unbedingt die englischen Funktionsnamen nutzen, also Average statt Mittelwert.
Moritz
moritz
*****
Beiträge: 216
Registriert: Mi, 20.10.2004 20:54

Re: bedingte Formatierung

Beitrag von moritz »

So funktioniert es:

oBedingung(1).Value = "AVERAGE(" & CellAddressreadableAbsolut(sSheet, 3,lZeile) & ":" & CellAddressreadableAbsolut(sSheet, oZelle.CellAddress.Column,lZeile) & ")"


function CellAddressreadableAbsolut(sSheet As string, iCRl As Integer, iCRo As Integer) As string
Dim sColumname As String
oDoc = ThisComponent
oSheet = oDoc.Sheets.getByName ( sSheet )
oCell1 = oSheet.getCellByPosition (iCRl, iCRo )
sColumnname=ocell1.getColumns.getByIndex(0).getName()
CellAddressreadableAbsolut = "$" & sSheet & ".$" & sColumnname & "$" & ltrim(str(iCRo+1))
end function
Antworten