bedingte Formatierung als String auslesen

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

Moderator: Moderatoren

clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

bedingte Formatierung als String auslesen

Beitrag 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 8)

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?
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: bedingte Formatierung als String auslesen

Beitrag 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
XRAY_GUI.GIF (13.88 KiB) 841 mal betrachtet

Gruß
Stephan
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: bedingte Formatierung als String auslesen

Beitrag 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
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: bedingte Formatierung als String auslesen

Beitrag 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
(.........)
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: bedingte Formatierung als String auslesen

Beitrag von clag »

Hallo DPunch,

na da habe ich jetzt etwas zum Knobeln :shock:

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) ;)
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Antworten