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
bedingte Formatierung
Moderator: Moderatoren
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: bedingte Formatierung
Du solltest einen Bereich und keine Zellposition setzen, siehe Bedingte Formatierung per Makro setzen
Klappt es dann?
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)
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)
Re: bedingte Formatierung
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
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
englische Funktionen
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
man muß unbedingt die englischen Funktionsnamen nutzen, also Average statt Mittelwert.
Moritz
Re: bedingte Formatierung
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
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