Hallo, Vera Unverzagt schrieb: > Da war ich wohl ein wenig voreilig. ;-)
das hatte ich neulich schon gedacht ;-), weil Du bedingte Formatierung ablehntest und mit der Makrogeschichte kamst > Wie baue ich das denn ein? normal per Hand, aber ich hatte auch neulich Dein Problem nur sehr eingeschränkt verstanden. Wenn es dann Makro sein soll und das deswegen weil es sich per Filter oder Sortierug ändert, leuchtet mir bedingte Formatierung nicht ein, und ich würde einfach per Makro ein Format zu weisen Aber wie gesagt ich verstehe Deine Anforderungen nicht vollständig, deshalb s.u. > Wenn ich also per Makro eine bedingte Formatierung durchführen will, > mache ich das wie? > oZelle ist die Zelle, aus der ich den Wert auslese, z.B. also A1. > > If IstGerade(oZelle) then > oZelle.CellStyle = "Vorlage" > End If > > gibt immer die Fehlermeldung "Basic Sub or Function nicht definiert". Die Fehklermeldung kommt weil IstGerade() keine BasicFunktion ist sondern eine Calc-Tabellenfunktion, bzw. konkret weil keine BasicFunktion definiert wurde die genauso heißt wie die Tabellenfunktion. (ohne getestet zu haben ob eine gleichnamige Definition zu einem Fehler führt, würde ich diese aber ohnehin vermeiden, weil ja Konflikte spätestens zu erwarten wären wenn Du dann die Tabellenfunktion nutzt) Aber auch wenn sie nicht käme weist das Makro keine bedingte Formatierung sondern nur eine Zellvorlage zu. Zuweisen einer Bedingten Formatierung kann ich nicht passend hinschreiben da ich die Zelladresse nicht kenne, aber Folgendes Beispiel aus Marc Bächinger's Calc-Basic-Dokument http://www.bcwin.ch/ooo/basic/calc/calc.html zeigt das Vorgehen: Sub bedingteFormateEinerZelleHinzufuegen ' Variablen deklarieren Dim oZelle as Object ' die bedingten Formate als XIndexAccess, XElementAccess Dim oBedingteFormate as Object ' Zelle A1 holen oZelle = ThisComponent.Sheets(0).getCellByPosition( 0, 0 ) ' bedingte Formate der Zelle holen oBedingteFormate = oZelle.ConditionalFormat ' neues bedingtes Format als PropertyValue Dim oBedingung(3) as New com.sun.star.beans.PropertyValue ' Eigenschaften des Formates definieren oBedingung(0).Name = "Operator" oBedingung(0).Value = com.sun.star.sheet.ConditionOperator.FORMULA oBedingung(1).Name = "Formula1" oBedingung(1).Value = "SUM(A1:A10) > 100" oBedingung(2).Name = "StyleName" oBedingung(2).Value = "Heading1" ' das neue Format zu den bereits bestehenden hinzufügen oBedingteFormate.addNew( oBedingung() ) ' oBedingteFormate.clear() ' wichtig! Bedingte Formate in zelle setzen oZelle.ConditionalFormat = oBedingteFormate End Sub Dein Beispiel, welches wie gesagt keine bedingte Formatierung zuweist, sondern lediglich eine Zellvorlage könnte so lauten: If (oZelle.Value mod 2) = 0 then oZelle.CellStyle = "Vorlage" End If Gruß Jörg --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]