bedingte formatierung per macro

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

Moderator: Moderatoren

keksi1970
*****
Beiträge: 464
Registriert: So, 27.01.2008 11:47
Wohnort: DU

bedingte formatierung per macro

Beitrag von keksi1970 »

hi,

ich als blutiger OO anwender habe einige fragen bezüglich bedingter formatierung per macro

ich habe eine liste in einer spalte mit unterschiedlichen, nicht sortierten zahlen

114,1
114,2
114,3
121,1
122,1
122,2
117,1
117,2
101,1
101,2
usw.

nun möchte ich anhand eines macros alle zellen farbig markieren, deren zahlen vor dem komma in einer 2. spalte oder tabelle stehen (bsp: 114 und 117) anschjliessend möchte ich die 2. tabelle wieder löschen können, ohne das die formatierung sich ändert. wahlweise kann ich die zahlen der 2.spalte oder tabelle auch per eingabe-box eingeben (also soll sich ein fensterchen öffnen, ich geb 114 ein, die felder die mit 114 beginnen färben sich blau, neue zahl eingeben, bei keiner eingabe ist der vorgang beendet, oder ähnlich)

für vorschläge, lösungsansätze und vollständige lösungen (wäre natürlich am besten, da blutiger anfänger) wäre ich dankbar

das 2. problem : ich bin faul, also würde ich gerne anhand eines macros bestimmte zellen farbig markieren : zelle markieren, makro ausführen und schon sollen die aktive zelle und die 4 rechts benachbarten zellen sich gelb färben. sollten sie bereits gelb sein, müssten sie sich grün färben. ist so etwas überhaupt möglich ???

vielen dank für eure hilfe :)
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: bedingte formatierung per macro

Beitrag von turtle47 »

Hi keksi,
keksi1970 hat geschrieben:wahlweise kann ich die zahlen der 2.spalte oder tabelle auch per eingabe-box eingeben (also soll sich ein fensterchen öffnen, ich geb 114 ein, die felder die mit 114 beginnen färben sich blau, neue zahl eingeben, bei keiner eingabe ist der vorgang beendet
das erledigt folgendes Makro:

Code: Alles auswählen

Sub TeilstringSuchen
	myDoc = thisComponent
	Tabellenname=mydoc.currentcontroller.activesheet.name
	mySheet = myDoc.Sheets().getByName(Tabellenname) 'aktives Tabellenblatt
	ZahlInput = inputbox ("Bitte Zahl eingeben")
	for i = 0 to 19 
	myCell = mySheet.getcellbyposition(0,i) 'Zeile A1 bis A20
	ZahlSheet = split(myCell.value,",")
	Zahl =  ZahlSheet(0)
	if ZahlInput = Zahl then 
	myCell.Cellbackcolor = RGB (57, 128, 244)
	end if
	Next i
End Sub
keksi1970 hat geschrieben:zelle markieren, makro ausführen und schon sollen die aktive zelle und die 4 rechts benachbarten zellen sich gelb färben. sollten sie bereits gelb sein, müssten sie sich grün färben. ist so etwas überhaupt möglich ???
Hiermit ja:

Code: Alles auswählen

Sub FarbenVierRechts  
	odoc=thisComponent
	Tabellenname=odoc.currentcontroller.activesheet.name
	oSelect=ThisComponent.CurrentSelection.getRangeAddress
	oSelectColumn=ThisComponent.CurrentSelection.Columns
	oSelectRow=ThisComponent.CurrentSelection.Rows
	oSelectAC=oSelect.StartColumn
	oSelectAR=oSelect.StartRow
	mySheet = oDoc.Sheets().getByName(Tabellenname)
	for i = 1 to 5
	myCell = mysheet.getCellByPosition(oSelectAC,oSelectAR)
	if myCell.Cellbackcolor = -1 then
	myCell.Cellbackcolor = RGB (255,255,0)
	elseif myCell.Cellbackcolor = RGB (255,255,0) then
	myCell.Cellbackcolor = RGB (35, 255, 35)
	elseif myCell.Cellbackcolor = RGB (35, 255, 35) then
	msgbox "Die Zellen sind schon grün eingefärbt!" , 64 , "Zellen einfärben"
	exit sub
	end if
	oSelectAC = oSelectAC +1
	next i
End Sub
Hilft das weiter?

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
keksi1970
*****
Beiträge: 464
Registriert: So, 27.01.2008 11:47
Wohnort: DU

Re: bedingte formatierung per macro

Beitrag von keksi1970 »

super
funktioniert
vielen dank :)

wenn es nun nicht zu unverschämt ist ;) :

zur 2. lösung : ich würde gerne mehrere zeilen untereinander markieren, dann das makro aufrufen und er soll mir von allen markierten zellen 5 nach rechts einfärben (ich habe noch keinen lösungsansatz, da ich die lösung noch nicht verstanden habe ;) )

zum 1. problem, oder zur 1. lösung: ich möchte nun gerne mehrere zahlen hintereinander eingeben, ohne jedesmal das makro neu aufrufen zu müssen, erst bei eingabe von "nichts" oder auch "999" soll das makro beendet werden.

edit 2 : hier stand jede menge blödsinn .... (erst nachdenken, dann posten) sorry wenn sich einer mit dieser antwort befasst hat

es geht nur um die 2. lösung :)
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: bedingte formatierung per macro

Beitrag von komma4 »

der Code von Jürgen setzt einen Zellhintergrund nach einer Bedingung....

ich habe gerade mal (für Suchende) ein Codebeispiel zum Setzen der "Bedingten Formatierung" (im FORMAT-Menü einer Calc-Datei) gepostet:

Bedingte Formatierung per Makro
HTH


@keksi1970:
für weitere Fragen am Besten je ein weitere Posting aufmachen....

für Deine Nachfrage zur 2. Lösung: siehe mal den Code von colorSelection, der befasst sich mit dem Setzen einer Hintergrundfarbe (abwechselnd per Zeile) einer oder mehrerer markierter Zell(-bereichen). Vielleicht hilft er auch die Lösung besser zu erfassen.
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)
keksi1970
*****
Beiträge: 464
Registriert: So, 27.01.2008 11:47
Wohnort: DU

Re: bedingte formatierung per macro

Beitrag von keksi1970 »

damke dir, aber so tief kann ich mich im moment noch nicht damit beschaeftigen, da ich ausschliesslich an den grundvoraussetzungen arbeite und nicht ganz so viel zeit habe um innerhalb von ein paar tagen mir das wissen zu erarbeiten (ich fang immer noch bei 0 an)
Antworten