Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1732to1736
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Arbeitsberichte Seriendruck in Excel?

Arbeitsberichte Seriendruck in Excel?
07.01.2020 13:39:58
Marco
Hallo zusammen,
ich habe nun schon seit längerem die Suchmaschinen bemüht um eine Lösung für mein Anliegen zu finden, leider habe ich bisher nicht das passende gefunden.
Bestimmt könnt Ihr mir weiterhelfen. :-)
Bei uns in der Arbeit hat jeder Mitarbeiter einen Tätigkeitsbericht für einen Monat, worin die Arbeitszeiten, etc. aufgeschrieben werden.
Die Vorlage von diesem Bericht, ist eine Excel Tabelle. Auf dem Bericht steht oben in Zelle "M2" der Name des Mitarbeiters. Der Name wurde bisher in der besagten Zelle durch eine Dropdown Liste (Datenprüfung = Blatt: Namensliste) ausgewählt und dann gedruckt. Mein Vorgänger hat das für über 40 Mitarbeiter einzeln gemacht.
Hier muss es doch eine Elegantere Lösung geben.
Natürlich unterstützt Word bereits den Seriendruck, da meine Tabelle aber auch ein Dynamischer Kalender ist fällt diese Variante leider raus.
Hier muss es doch bestimmt eine VBA Lösung geben um das zu Verwirklichen?
Würde mich über Hilfe freuen.
Vielen Dank
Gruß
Marco

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Arbeitsberichte Seriendruck in Excel?
07.01.2020 14:24:51
Regina
Hi,
liegen die Tabellenblätter alle in der gleichen Datei? Wenn ja, sind ausschließlich Tabellenblätter in der Datei, die gedruckt werden sollen, oder können die zu druckenden Blätter irgendwie eindeutig identifiziert werden?
Man könnte die Blätter in einer Schleife druchlaufen und einzeln ausdrucken. Aber dazu bedarf ein paar weiterer Informationen.
Gruß
Regina
AW: Arbeitsberichte Seriendruck in Excel?
07.01.2020 14:55:04
Marco
Hallo Regina,
danke für deine Schnelle Antwort.
Ja es befindet sich alles in einer Datei.
Datei beinhaltet folgende 3 Blätter:
- Tätigkeitsbericht
- Namensliste (alle Mitarbeiter in der Spalte "A", pro Zeile ein Name)
- Feiertage (Feiertagsberechnung für den Dyn. Kalender)
Gedruckt werden soll nur Das Blatt "Tätigkeitsbericht" jeweils 1x mit jedem Namen aus dem Blatt "Namensliste".
Hoffe es ist so verständlich.
Danke
Gruß
Marco
Anzeige
AW: Arbeitsberichte Seriendruck in Excel?
07.01.2020 15:06:42
Regina
Hi,
dann teste mal diesen Code:
Public Sub Druck()
Dim obj_wks_Namensliste As Worksheet
Dim lng_zeile As Long
Set obj_wks_Namensliste = Worksheets("Namensliste")
lng_zeile = 1    ' Erster Name steht in Zeile 1
With obj_wks_Namensliste
Do Until .Cells(lng_zeile, 1) = ""
Worksheets("Tätigkeitsbericht").Range("M2") = .Cells(lng_zeile, 1)
Worksheets("Tätigkeitsbericht").PrintOut
lng_zeile = lng_zeile + 1
Loop
End With
MsgBox "Alle gedruckt"
End Sub
Der Code geht davon aus, dass der erste Mitarbeitername in der zelle A1 steht. Sollte das nicht der Fall sein, musst Du das im Code anpassen.
gruß
Regina
Anzeige
AW: Arbeitsberichte Seriendruck in Excel?
08.01.2020 14:26:48
Marco
Hi,
danke für den Code.
Heute früh hab ich Ihn in einer Test Tabelle ausprobiert.
Dort hat das ganze einwandfrei funktioniert.
Wenn ich ihn jetzt in der fertigen Tabelle verwende, kommt wenn ich das Makro per Schaltfläche ausführe nur die Abschlussmeldung "Alle gedruckt" und ein Ladekreis am Mauszeiger.
Es geht aber kein Druckauftrag raus.
Habe mal meine Datei angehängt.
Danke
Gruß
Marco
https://www.herber.de/bbs/user/134245.xlsm
AW: Arbeitsberichte Seriendruck in Excel?
08.01.2020 14:42:52
Werner
Hallo,
das liegt daran, dass du hier:
Do Until .Cells(lng_zeile, 1) = ""

den Wert in der Klammer von 1 auf 2 geändert hast. Die 1 in der Klammer steht für die Spalte A = 1. Du hast auf 2 geändert = B. Dort stehen aber keine Daten.
Hier mal das ganze mit einer For - Next Schleife
Public Sub Druck()
Dim i As Long
With Worksheets("Namensliste")
For i = 2 To .Cells(.Rows.Count, "A").End(xlUp).Row
Worksheets("Tätigkeitsbericht").Range("M2") = .Cells(i, "A")
Worksheets("Tätigkeitsbericht").PrintPreview
Next i
End With
MsgBox "Alles gedruckt."
End Sub
Gruß Werner
Anzeige
AW: Arbeitsberichte Seriendruck in Excel?
08.01.2020 14:51:58
Regina
Hi,
aus welchem Grund auch immer, in meinem Code steht:
Do Until .Cells(lng_zeile, 1) = ""
in Deiner Mappe:
Do Until .Cells(lng_zeile, 2) = ""
Du wolltest wahrscheinlich die Namensliste in Zeile 2 beginnen lassen, dafür musst Du aus
zeile = 1 --> zeile = 2 machen
Bei Cells steht der 1. Parameterwert für die Zeile und der zweite für die Spalte (A=1, B=2 usw.
Es muss bei Dir also so aussehen:
Public Sub Druck()
Dim obj_wks_Namensliste As Worksheet
Dim lng_zeile As Long
Set obj_wks_Namensliste = Worksheets("Namensliste")
lng_zeile = 2    ' Erster Name steht in Zeile 2
With obj_wks_Namensliste
Do Until .Cells(lng_zeile, 1) = ""
Worksheets("Tätigkeitsbericht").Range("M2") = .Cells(lng_zeile, 2)
Worksheets("Tätigkeitsbericht").PrintOut
lng_zeile = lng_zeile + 1
Loop
End With
MsgBox "Alle gedruckt"
End Sub
dann sollte es auch laufen.
Gruß
Regina
Anzeige
AW: Arbeitsberichte Seriendruck in Excel?
08.01.2020 14:54:06
Werner
Hallo,
was ich gerade noch sehe:
Du hast im Blatt "Namensliste" einen Filter. Sehe ich das richtig, dass du dort dann nach Mitarbeiternamen filtern willst und sich das Drucken nur auf die aktuell angezeigten Namen (nach dem Filtern) beziehen soll?
Wenn ja, dann muß das Makro noch angepasst werden. Dann so:
Public Sub Druck()
Dim i As Long
With Worksheets("Namensliste")
For i = 2 To .Cells(.Rows.Count, "A").End(xlUp).Row
If Not .Rows(i).Hidden Then
Worksheets("Tätigkeitsbericht").Range("M2") = .Cells(i, "A")
Worksheets("Tätigkeitsbericht").PrintPreview
End If
Next i
End With
MsgBox "Alles gedruckt."
End Sub
Gruß Werner
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige