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]

Antwort per Email an