Hintergrundfarbe mit Makro für aktuelle Zeile von A bis G

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

Moderator: Moderatoren

Tron0070
Beiträge: 5
Registriert: Sa, 09.02.2013 15:29

Hintergrundfarbe mit Makro für aktuelle Zeile von A bis G

Beitrag von Tron0070 »

Hallo Leute,

ich wollte mal wissen, wie man in der aktuellen Zeile die Hintergrundfarbe per Makro ändert z.B. A bis G.

Habe schon gesucht aber nichts passendes gefunden

Kann mir da bitte jemand helfen?

Gruß Reiner
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Hintergrundfarbe mit Makro für aktuelle Zeile von A bis

Beitrag von F3K Total »

Hi,
dies geht, überschreibt aber händisch gesetzte Hintergundfarben.

Code: Alles auswählen

global noldrow as integer
global osheet as object
global bfirst as boolean

Sub S_change_cellbackcolor_in_actual_row(event)
    if not bfirst then goto 100
    S_remove_cellbackcolor_in_old_row
    100:
    ocell = event
    if ocell.supportsservice("com.sun.star.sheet.SheetCell") then
       ocelladdress = ocell.celladdress
       nsheet = ocelladdress.sheet
       osheet = thiscomponent.sheets(nsheet)
       nRow = ocelladdress.Row
       noldrow = nRow
       orange = osheet.getcellrangebyposition(0,nRow,6,nRow)'A=0 bis G=6
       orange.CellBackColor = 16760320
    endif
    bfirst = true
End Sub

Sub S_remove_cellbackcolor_in_old_row
       orange = osheet.getcellrangebyposition(0,noldRow,6,noldRow)'A=0 bis G=6
       orange.CellBackColor = -1
End Sub
Hänge das Makro S_change_cellbackcolor_in_actual_row an das Tabellenereignis Auswahl geändert
Viel Spaß damit
Gruß R
Tron0070
Beiträge: 5
Registriert: Sa, 09.02.2013 15:29

Re: Hintergrundfarbe mit Makro für aktuelle Zeile von A bis

Beitrag von Tron0070 »

Hallo F3K Total, danke erst mal für Deine Hilfe.

Ich habe heute das erste mal mit Makros zu tun gehabt und beim einfügen Deines Makro-Skript komme ich nicht weiter.
Es werden Fehler angezeigt.

Unter Ubuntu 10.04 verwende ich OOO320m12 (Build:9483).
Dann gehe ich auf Extras/Makros/Makros verwalten/OpenOffice.org Basic...
Dann wähle ich "Meine Makros/basic" und wähle "Neu" aus. Daraufhin wird ein neues Modul angelegt. Meines heißt "bg".
Ich lösche "Sub Main"+"End Sub" und füge Dein Makro-Skript ein.

Dann starte ich das Makro und mir werden folgende Fehler angezeigt.
BASIC-Laufzeitfehler. Argument ist nicht optional und zeigt dabei auf --> ocell = event
BASIC-Laufzeitfehler. Objektvariable nicht belegt und zeigt dabei auf
--> orange = osheet.getcellrangebyposition(0,noldRow,6,noldRow)'A=0 bis G=6

Habe ich da was falsch gemacht was ist damit?
Und was meinst Du mit
Hänge das Makro S_change_cellbackcolor_in_actual_row an das Tabellenereignis Auswahl geändert
Also wie gesagt, das ist mein erster Tag mit Makros.
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Hintergrundfarbe mit Makro für aktuelle Zeile von A bis

Beitrag von F3K Total »

Hi,
Tron0070 hat geschrieben:Unter Ubuntu 10.04 verwende ich OOO320m12 (Build:9483).
Ich bin mir nicht sicher, aber ich glaube die Tabellenereignisse wurden erst mit OOO 3.3.0 eingeführt. Aber auch die aktuelle LibreOffice Version aus der Paketquelle hat die Tabellenereignisse bereits.

Solltest Du updaten, dann gehts so:
Unten auf dem Tabellenreiter einen Rechtsklick machen, "Tabellenereignisse..." dort wählst Du, wie schon geschrieben, "Auswahl geändert" als auslösendes Ereignis und ordnest ihm das Makro zu.
Das Makro wird dann gestartet, wenn du in eine "andere" Zelle klickst, und so die aktuelle Zeile bestimmst.

Das sieh dann so aus:
CBG.png
CBG.png (12.62 KiB) 4485 mal betrachtet


Gruß R
Antworten