❤️ Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! ❤️
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Zeile markieren hervorheben bei Auswahl einer Zelle [gelöst]

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Tschubi
Beiträge: 159
Registriert: Fr 13. Nov 2015, 12:09

Zeile markieren hervorheben bei Auswahl einer Zelle [gelöst]

Beitrag von Tschubi » Fr 16. Jun 2023, 17:48

Hallo zusammen,

ich suche iene Möglichkeit die ganze Zeile oder im ideal Fall nur einen festgelegten Breich einer Zeile hervorzuheben sobald ich eine Zelle dieser Zeile anklicke.

Lässt sich das irgendwie mit bedingter Formatierung bewältigen oder eher per Makro?

Vielen Dank und Grüße
Zuletzt geändert von Tschubi am Sa 24. Jun 2023, 16:13, insgesamt 1-mal geändert.
Ubuntu 22.04.2 LTS / Windows 11 / LO 7.3.7.2

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Zeile markieren hervorheben bei Auswahl einer Zelle

Beitrag von F3K Total » Sa 17. Jun 2023, 09:59

Moin,
ich habe das mal programmiert, siehe auch Beispiel anbei.

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
TE1.png
TE1.png (11.11 KiB) 6880 mal betrachtet
Auswahl geändert.
TE2.png
TE2.png (13.35 KiB) 6880 mal betrachtet
Gruß R
Dateianhänge
change_cellbackcolor_current_row.ods
(13.25 KiB) 229-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO

Tschubi
Beiträge: 159
Registriert: Fr 13. Nov 2015, 12:09

Re: Zeile markieren hervorheben bei Auswahl einer Zelle

Beitrag von Tschubi » Sa 17. Jun 2023, 12:29

Hallo F3k Total,

super besten Dank.

Nachdem ich mir deine Umsetzung angeschuat habe ist mir bewusst geworden, dass die Zellen wo ich das gern einsetzen wollen würde ja bereits eine Hintergrundfarbe, nicht weiß, haben.

Jetzt habe ich aus anderen Beiträgen in dein Makro eine Funktionen eingefügt um die Zellenfarbe zuvor auszulesen um diese dann wieder setzen zu können. (siehe Datei Anhang)

Das Funktioniert aber nicht wie gedacht. :-( Kannst du dir das bitte mal anschauen?

Ich frage mich auch ob die Idee in der Praxis so die Beste ist, denn im Tabellenblatt gibt es ja auch andere Bereiche in welchen ich Daten erfasse und das Makro greift ja immer wenn eine Zelle ausgewählt wird. Vielleicht ist es sinnvoller nur im gewünschten Bereich die Schrift fett zu machen um eine schnelle Zuordnung auf die Zeile bzw. den Bereich zu bekommen, hm.

Vielen Dank und Gruß
Dateianhänge
change_cellbackcolor_current_row.ods
(25.26 KiB) 222-mal heruntergeladen
Ubuntu 22.04.2 LTS / Windows 11 / LO 7.3.7.2

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Zeile markieren hervorheben bei Auswahl einer Zelle

Beitrag von F3K Total » So 18. Jun 2023, 09:07

... dann forsche mal schön, du hast alles bekommen, was nötig ist.
Viel Spaß Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

musikai
Beiträge: 263
Registriert: Do 14. Mai 2015, 17:53

Re: Zeile markieren hervorheben bei Auswahl einer Zelle

Beitrag von musikai » So 18. Jun 2023, 13:59

Tschubi hat geschrieben:
Sa 17. Jun 2023, 12:29
Nachdem ich mir deine Umsetzung angeschuat habe ist mir bewusst geworden, dass die Zellen wo ich das gern einsetzen wollen würde ja bereits eine Hintergrundfarbe, nicht weiß, haben.

Jetzt habe ich aus anderen Beiträgen in dein Makro eine Funktionen eingefügt um die Zellenfarbe zuvor auszulesen um diese dann wieder setzen zu können. (siehe Datei Anhang)

Das Funktioniert aber nicht wie gedacht. :-( Kannst du dir das bitte mal anschauen?
Die alte Farbe muss in einer Variable gespeichert werden, die zudem im Dokument mit gespeichert wird, denn wenn Du z.B. eine ursprünglich rote Zeile markiert hattest, die nun graublau ist, willst du ja beim Wiederöffnen der Datei diese rote farbe wiederherstellen können.
Deshalb ist im angehängten Beispiel unter Datei->Eigenschaften->Benutzerdefinierte Eigenschaften eine Variable "oldfarbe" eingerichtet, die im Makro verwendet wird.
Tschubi hat geschrieben:
Sa 17. Jun 2023, 12:29
Ich frage mich auch ob die Idee in der Praxis so die Beste ist, denn im Tabellenblatt gibt es ja auch andere Bereiche in welchen ich Daten erfasse und das Makro greift ja immer wenn eine Zelle ausgewählt wird. Vielleicht ist es sinnvoller nur im gewünschten Bereich die Schrift fett zu machen um eine schnelle Zuordnung auf die Zeile bzw. den Bereich zu bekommen, hm.

Vielen Dank und Gruß
Ja, viel Spaß beim experimentieren. (Ich glaube mich zu erinnern, dass es komplizierter wird, Schrifteffekte zu verändern.)
Dateianhänge
change_cellbackcolor_current_row2.ods
(22.69 KiB) 204-mal heruntergeladen
Win7 Pro, Sibelius 7.1.3, Lubuntu 15.10, LibO 4.4.7, OO 4.1.3
Free Project: LibreOffice Songbook Architect (LOSA)
http://struckkai.blogspot.de/2015/04/li ... itect.html

Tschubi
Beiträge: 159
Registriert: Fr 13. Nov 2015, 12:09

Re: Zeile markieren hervorheben bei Auswahl einer Zelle

Beitrag von Tschubi » Mi 21. Jun 2023, 11:06

Hallo musikai,

besten Dank für deine Arbeit. Ich habe noch eine Verständnisfrage.
Die alte Farbe muss in einer Variable gespeichert werden, die zudem im Dokument mit gespeichert wird, denn wenn Du z.B. eine ursprünglich rote Zeile markiert hattest, die nun graublau ist, willst du ja beim Wiederöffnen der Datei diese rote farbe wiederherstellen können.
Deshalb ist im angehängten Beispiel unter Datei->Eigenschaften->Benutzerdefinierte Eigenschaften eine Variable "oldfarbe" eingerichtet, die im Makro verwendet wird.
Das macht Sinn und ist nachvollziehbar. Was ich nicht verstehe warum diese Variable "oldfarbe" in den Eigenschaften definiert wird und nicht als globale Variable im Makro und warum diese den Wert -1 hat?

Danke und Gruß
Ubuntu 22.04.2 LTS / Windows 11 / LO 7.3.7.2

musikai
Beiträge: 263
Registriert: Do 14. Mai 2015, 17:53

Re: Zeile markieren hervorheben bei Auswahl einer Zelle

Beitrag von musikai » Mi 21. Jun 2023, 11:42

Tschubi hat geschrieben:
Mi 21. Jun 2023, 11:06
Das macht Sinn und ist nachvollziehbar. Was ich nicht verstehe warum diese Variable "oldfarbe" in den Eigenschaften definiert wird und nicht als globale Variable im Makro und warum diese den Wert -1 hat?
Eine globale Variable überlebt keinen Programm-Neustart, sondern wird zurückgesetzt.
Wenn Du also als letztes eine rote Zeile markiert hattest, würde diese am nächsten Tag wieder auf "keine Farbe" zurückgesetzt werden.
-1 bedeutet "keine Farbe". Diesen Wert habe ich nur voreingestellt, weil in der Datei als letztes eine Zeile markiert war, die ursprünglich keine Farbe hatte.

Außerdem könntest Du ja mehrere unterschiedliche Dateien haben, in denen der Cursor an verschiedenen Stellen gesetzt war.

(Insgesamt müsste man das Macro evtl. noch anpassen für den Fall, dass Du mehrere Zellen ausgewählt hast, da versagt es zur Zeit. usw.)
Win7 Pro, Sibelius 7.1.3, Lubuntu 15.10, LibO 4.4.7, OO 4.1.3
Free Project: LibreOffice Songbook Architect (LOSA)
http://struckkai.blogspot.de/2015/04/li ... itect.html

Tschubi
Beiträge: 159
Registriert: Fr 13. Nov 2015, 12:09

Re: Zeile markieren hervorheben bei Auswahl einer Zelle

Beitrag von Tschubi » Fr 23. Jun 2023, 10:06

Hallo musikai,

danke für die Erklärungen und macht es nachvollziehbarer für mich - Top

Für meinen Einsatzzweck sollte es so reichen und ich werde jetzt mal das in der Praxis etwas testen. Habe das Makro "S_change_cellbackcolor_in_actual_row" jetzt mal auf Doppelklick zugewiesen und auf Rechtsklick das "S_remove_cellbackcolor_in_old_row" dann kann ich weiterhin Zellen / Zeilen markieren und einfügen ohne, dass das Makro greift.

Vielleicht kannst du mir noch sagen wie ich Schrift Bold noch mit setzen könnte und wieder zurück.

Danke!
Ubuntu 22.04.2 LTS / Windows 11 / LO 7.3.7.2

musikai
Beiträge: 263
Registriert: Do 14. Mai 2015, 17:53

Re: Zeile markieren hervorheben bei Auswahl einer Zelle

Beitrag von musikai » Fr 23. Jun 2023, 21:07

Tschubi hat geschrieben:
Fr 23. Jun 2023, 10:06
Hallo musikai,
danke für die Erklärungen und macht es nachvollziehbarer für mich - Top
Gerne, immer froh, wenn's jemand versteht.
Tschubi hat geschrieben:
Fr 23. Jun 2023, 10:06
Vielleicht kannst du mir noch sagen wie ich Schrift Bold noch mit setzen könnte und wieder zurück.
Danke!
Musste selbst erstmal hier nachlesen:
https://www.prooo-box.org/live/dokument ... eutsch.pdf
Man kann direkt die Eigenschaften im Service com.sun.star.style.CharacterProperties anwenden.
Zu finden in
Tabelle 135. Eigenschaften im Service com.sun.star.style.CharacterProperties.
https://www.prooo-box.org/live/dokument ... 789%2C0%5D
Also so:

Code: Alles auswählen

orange.CharWeight = com.sun.star.awt.FontWeight.BOLD
orange.CharWeight = com.sun.star.awt.FontWeight.NORMAL
Dateianhänge
change_cellbackcolor_current_row3.ods
(26.08 KiB) 236-mal heruntergeladen
Win7 Pro, Sibelius 7.1.3, Lubuntu 15.10, LibO 4.4.7, OO 4.1.3
Free Project: LibreOffice Songbook Architect (LOSA)
http://struckkai.blogspot.de/2015/04/li ... itect.html

Tschubi
Beiträge: 159
Registriert: Fr 13. Nov 2015, 12:09

Re: Zeile markieren hervorheben bei Auswahl einer Zelle

Beitrag von Tschubi » Sa 24. Jun 2023, 16:13

Hallo musikai,

perfekt! Dankeschön.

Auch für die Links zu den PDFs.

Schönes WE
Ubuntu 22.04.2 LTS / Windows 11 / LO 7.3.7.2


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten