Seite 1 von 1
Seriendruck mit bedingt markierten Zellen
Verfasst: Mi, 08.05.2013 15:40
von AA62
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!
Re: Seriendruck mit bedingt markierten Zellen
Verfasst: Fr, 10.05.2013 15:22
von F3K Total
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:
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
In der Beispieldatei einmal auf den Knopf drücken.
Viel Erfolg, Gruß R
Re: Seriendruck mit bedingt markierten Zellen
Verfasst: Fr, 10.05.2013 22:03
von AA62
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!
Re: Seriendruck mit bedingt markierten Zellen
Verfasst: Fr, 10.05.2013 22:40
von F3K Total
So,
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
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
Re: Seriendruck mit bedingt markierten Zellen
Verfasst: Mo, 13.05.2013 17:18
von AA62
Hallo R,
Du hast Dir wirklich Mühe gemacht - und das Makro tut genau, was es soll!
Vielen Dank!