Seite 1 von 1
bedingte Formatierung als String auslesen
Verfasst: Mi, 07.07.2010 10:15
von clag
Hallo liebe Leutz,
bin schwer auf eure Hilfe angewiesen
ich möchte die auf eine Zelle angewendete "Bedingte Formatierung" auslesen und als Text in einem Kommentar zu der Zelle anzeigen
komma4 hat geschrieben:clag hat geschrieben:und besteht eine Chance meinen zweiten Wunsch zu realisieren also die BF auslesen und in die Notiz schreiben ?
Ja, natürlich.
Die Bedingungen (
oCell.Bedingungen) sind eine Aufzählung deren einzelne Elemente (
oCell.Bedingungen.getByIndex(x)), die folgenden Eigenschaften haben (vom Typ):
Code: Alles auswählen
Formula1 string
Formula2 string
Operator com.sun.star.sheet.ConditionOperator
StyleName string
Jetzt musst Du "nur noch" den Zellwert ermitteln und die Bedingung(en) durchgehen, welche zutrifft
XRAY, Dein Freund, zeigt Dir das alles.
diese Antwort übersteigt leider meinen Basic-Horizont bei weitem
hat jemand Zeit, Lust und Muße, mir mit konkreten Hilfestellungen Step by Step zum Ziel zu verhelfen?
Re: bedingte Formatierung als String auslesen
Verfasst: Mi, 07.07.2010 12:00
von Stephan
Lade XRAY herunter:
http://sourceforge.net/projects/ooomacros/files/X-Ray/
Entpacke das heruntergeladene zip und Du erhälst die Datei XrayTool52_en.sxw, öffne diese DAtei.
Klicke in dieser DAtei die Schaltfläche "Install XRAY" (seite 4 der DAtei) um XRay zu installieren.
Starte (sicherhaltshalber) OOo neu.
Füge für das zu prüfende Objekt einen Aufruf für XRay ein, im Falle einer bedingten Formatierung für die Zelle A1 der ersten Tabelle einer Calc-Datei z.B.:
Code: Alles auswählen
Sub Main
x = ThisComponent.Sheets(0).getCellRangeByName("A1").ConditionalFormat
XrayTool._Main.Xray x(0)
End Sub
XRAY zeigt nun die entsprechenden Infos im XRAY_fenster an und du kannst dort weitergehend navigieren, durch NUtzung der Schaltflächen oder Doppelklicken sichtbarer Einträge:

- XRAY_GUI.GIF (13.88 KiB) 842 mal betrachtet
Gruß
Stephan
Re: bedingte Formatierung als String auslesen
Verfasst: Mi, 07.07.2010 16:42
von clag
Hallo Stephan,
bis hier habe ich deine Anleitung nach vollziehen können,
dh ich sehe jetzt auch dieses Fenster von XRay und erkenne auch ein paar Dinge wieder zB, Name und den Vorlage und den Wert
(die BF ist =5; vorlage01 )
wie kann ich daraus jetzt verständlichen Text erzeugen also zB "Bedingung ist: >5, vorlage01"
im einfachsten Fall
Re: bedingte Formatierung als String auslesen
Verfasst: Mi, 07.07.2010 18:30
von DPunch
Aloha
Die Übersetzung des ".Operator" findest Du hier:
API: enum ConditionOperator
Der Sinn von Formula1 und Formula2 sollte demtentsprechend selbsterklärend sein.
Code: Alles auswählen
BedFormat = oBedingungen.Count
if BedFormat > 0 Then
sMessage = ""
For i = 0 To BedFormat-1
If i > 0 Then sMessage = sMessage & Chr(13)
sMessage = sMessage & "Bedingung " & i+1 & ": "
nOperator = oBedingungen(i).Operator
Select Case nOperator
Case 0: sMessage = sMessage & "Keine"
Case 1: sMessage = sMessage & "=" & oBedingungen(i).Formula1 _
& "; " & oBedingungen(i).StyleName
Case 2: sMessage = sMessage & "<>" & oBedingungen(i).Formula1 & "; " & oBedingungen(i).StyleName
Case 3: sMessage = sMessage & ">" & oBedingungen(i).Formula1 & "; " & oBedingungen(i).StyleName
Case 4: sMessage = sMessage & ">=" & oBedingungen(i).Formula1 & "; " & oBedingungen(i).StyleName
Case 5: sMessage = sMessage & "<" & oBedingungen(i).Formula1 & "; " & oBedingungen(i).StyleName
Case 6: sMessage = sMessage & "<=" & oBedingungen(i).Formula1 & "; " & oBedingungen(i).StyleName
Case 7: sMessage = sMessage & "Zwischen " & oBedingungen(i).Formula1 & " und " & oBedingungen(i).Formula2 _
& "; " & oBedingungen(i).StyleName
Case 8: sMessage = sMessage & "Nicht zwischen " & oBedingungen(i).Formula1 & " und " & oBedingungen(i).Formula2 _
& "; " & oBedingungen(i).StyleName
End Select
Next i
MsgBox sMessage
End If
(.........)
Re: bedingte Formatierung als String auslesen
Verfasst: Mi, 07.07.2010 18:53
von clag
Hallo DPunch,
na da habe ich jetzt etwas zum Knobeln
und Danke für die Info's und Hinweis
das gilt natürlich auch für dich Stephan (nur du magst es ja nicht lesen)
