Hallo,
ich stehe gerade vor einem Problem, bei dem ich leider keinen Lösungsansatz habe!
Gegeben: Dienstplan als Tabelle. Der Dienstplan enthält alle Dienstzeiten für alle Personen auf einen Blick.
Dieser Plan soll nun für alle KollegInnen ausgedruckt werden, und zwar so, dass bei jedem Ausdruck für die entsprechende Person genau ihr Name hervorgehoben ist (z. B. durch eine Hintergrundfarbe der Zelle). Das würde das lästige Suchen und Markieren des eigenen Namens ersetzen.
Doch ... wie? Ich dachte irgendwie an eine Seriendruckfunktion mit bedingter Formatierung, kann aber nichts finden.
Hat jemand eine Idee??
Vielen Dank im Voraus!
Seriendruck mit bedingt markierten Zellen
Moderator: Moderatoren
Re: Seriendruck mit bedingt markierten Zellen
Hallo,
dass es eine Funktion dafür gibt, wäre mir neu, aber mit einem kurzen Makro ist das kein Problem, siehe auch Beispieldatei unten:
In der Beispieldatei einmal auf den Knopf drücken.
Viel Erfolg, Gruß R
dass es eine Funktion dafür gibt, wäre mir neu, aber mit einem kurzen Makro ist das kein Problem, siehe auch Beispieldatei unten:
Code: Alles auswählen
Sub s_Print
dim printprops()
odoc = thiscomponent
osheet = odoc.sheets.getbyname("Tabelle1")
oRange = osheet.getcellrangebyname("A2:AF9") 'Bereich in dem die Farbe geändert werden soll, es wird die Hintergrundfarbe der obersten Zeile verwendet.
ncolor = oRange.getcellbyposition(0,0).cellbackcolor
ncolumns = oRange.columns.count -1
nrows = oRange.rows.count -1
for i = 0 to nrows
oRangecurrentPerson = orange.getcellrangebyposition(0,i,ncolumns,i)
oRangecurrentPerson.cellbackcolor = ncolor
odoc.print(printprops())
wait 200
oRangecurrentPerson.cellbackcolor = -1
next i
oRangecurrentPerson = orange.getcellrangebyposition(0,0,ncolumns,0)
oRangecurrentPerson.cellbackcolor = ncolor 'Farbe wieder in die erste Zeile
End Sub
Viel Erfolg, Gruß R
- Dateianhänge
-
- Dienstplan_drucken.ods
- (12.85 KiB) 31-mal heruntergeladen
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Seriendruck mit bedingt markierten Zellen
Hallo R,
danke für diese qualifizierte Antwort! Da tun sich Möglichkeiten auf ... allerdings bin ich mit Makroprogrammierung noch nicht vertraut.
Das Makro funktioniert hervorragend, aber ich habe ein paar Fragen:
Wo wird denn festgelegt, dass der Button in der Tabelle erscheint (ich möchte ihn dort raushaben und habe ihn mir in die Menüleiste gepackt)?
Kann man den Druck dunkel prozessieren? Sicher wird man das können, aber mir ist gar nicht klar, wo man diesen Eigenschaft (Dialog/dunkel) überhaupt angibt.
Als "Programm-Makro-Anfänger" habe ich noch die Bitte: Kannst Du mal die Beispieldatei anschauen, die erklärt die Anforderung etwas besser als ich es offensichtlich im Text gemacht habe. In den Zellen stehen die Namen der Diensthabenden (in der Realität natürlich eine wesentlich größere Tabelle!) und diese Zellen sollen jeweils für den Druck-Adressaten markiert werden.
Der Programmiersprung vom vorgeschlagenen Makro zum dem, das ich konkret brauche, ist mir noch etwas zu hoch ...
Vielen Dank!
danke für diese qualifizierte Antwort! Da tun sich Möglichkeiten auf ... allerdings bin ich mit Makroprogrammierung noch nicht vertraut.
Das Makro funktioniert hervorragend, aber ich habe ein paar Fragen:
Wo wird denn festgelegt, dass der Button in der Tabelle erscheint (ich möchte ihn dort raushaben und habe ihn mir in die Menüleiste gepackt)?
Kann man den Druck dunkel prozessieren? Sicher wird man das können, aber mir ist gar nicht klar, wo man diesen Eigenschaft (Dialog/dunkel) überhaupt angibt.
Als "Programm-Makro-Anfänger" habe ich noch die Bitte: Kannst Du mal die Beispieldatei anschauen, die erklärt die Anforderung etwas besser als ich es offensichtlich im Text gemacht habe. In den Zellen stehen die Namen der Diensthabenden (in der Realität natürlich eine wesentlich größere Tabelle!) und diese Zellen sollen jeweils für den Druck-Adressaten markiert werden.
Der Programmiersprung vom vorgeschlagenen Makro zum dem, das ich konkret brauche, ist mir noch etwas zu hoch ...
Vielen Dank!
- Dateianhänge
-
- Dienstplan_Markierung.ods
- Beispieldatei für die Anforderung
- (12.59 KiB) 25-mal heruntergeladen
Re: Seriendruck mit bedingt markierten Zellen
So,
habe mir die Mühe gemacht:
Es müssen nur noch die beiden Bereiche angepasst werden.
Denke beim Originaldokument daran den Druckbereich richtig zu setzen.
Es gibt auch ein neues Menü "Druckmakro".
Gruß R
habe mir die Mühe gemacht:
Code: Alles auswählen
Sub s_Print
dim printprops()
odoc = thiscomponent
odoc.lockcontrollers
osheet = odoc.sheets.getbyname("Tabelle1")
oRangePlan = osheet.getcellrangebyname("B3:E6") 'Bereich in dem die Farbe geändert werden soll.
oRangePersonen = osheet.getcellrangebyname("F3:F10") 'Bereich in dem alle Personen eingetragen sind, es wird die Hintergrundfarbe der obersten Zeile verwendet.
ncolor = oRangePersonen.getcellbyposition(0,0).cellbackcolor
ncolumns = oRangePlan.columns.count -1
nrows = oRangePlan.rows.count -1
nPersons = oRangePersonen.rows.count
for h = 0 to nPersons -1
sName = oRangePersonen.getcellbyposition(0,h).string
for i = 0 to ncolumns
for k = 0 to nrows
ocurrentCell = oRangePlan.getcellbyposition(i,k)
if ocurrentCell.string = sName then ocurrentCell.cellbackcolor = ncolor
next k
next i
odoc.print(printprops())
wait 200
oRangePlan.cellbackcolor = -1
next h
odoc.unlockcontrollers
msgbox ("Es wurden "+nPersons +" Pläne zum Drucker geschickt",64,"Fertig")
End Sub
Denke beim Originaldokument daran den Druckbereich richtig zu setzen.
Es gibt auch ein neues Menü "Druckmakro".
Gruß R
- Dateianhänge
-
- Dienstplan_Markierung.ods
- (13.92 KiB) 36-mal heruntergeladen
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Seriendruck mit bedingt markierten Zellen
Hallo R,
Du hast Dir wirklich Mühe gemacht - und das Makro tut genau, was es soll!
Vielen Dank!
Du hast Dir wirklich Mühe gemacht - und das Makro tut genau, was es soll!
Vielen Dank!