Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1012to1016
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

Liste in Excel als Serienbrief drucken

Liste in Excel als Serienbrief drucken
25.09.2008 09:20:00
KLE
Hallo,
ich habe heut wieder eine Herausforderung bei derer Lösung ich leider nicht weiterkomme. Daher bitte ich Euch um Unterstützung !
Ich habe eine Excel-Datei, welche eine Liste von ca. 800 Vorgängen enthält (Rechnungsdaten). Auf einem anderen Arbeitsblatt habe ich mir eine Abfragemaske gebastelt - welche auf Knopfdruck unterhalb der Maske alle Daten zu dem selektieren Kriterium auflistet. (z.B. suche alle Daten zu einem Verkäufer, dann erscheint eine kleine Liste unterhalb der Maske alle Vorgänge, die von dem Verkäufer getätigt wurden.) Dies funktioniert super.
Jetzt möchte ich gern einen Druckbefehl einbauen - der mir folgendes ermöglicht.
Eine art Seriendruckfunktion, soll heißen - starte ich das Marko, soll Excel jeden Datensatz in ein vorgefertigtes Arbeitsblatt eintragen - dieses dann drucken, anschließend wieder die Felder leeren und mit dem 2'ten Datensatz das gleiche tun usw. --- eben alle Datensätze einmal durchlaufen, die zu dem gesuchten Kriterium passen...
Wie lautet hierbei der Code für den Befehl der Schleife - fülle mit Daten, drucke aus, lösche die Daten und dann wieder fülle die Daten, drucke aus, lösche die Daten usw., bis alle Datensätze der Selektion durchlaufen wurden...
Ich hoffe es wurde so halbwegs klar was ich suche und Ihr könnt mir helfen !
Vielen Lieben Dank und Grüße aus Berlin
Kay

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Datensätze drucken
25.09.2008 10:18:29
Backowe
Hi Kay,
angenommen du listest Deine Datensätze ab A20 bis F "irgendwas" auf. Falls nicht bitte anpassen. ;o)
VBA-Code:
Sub BereichDrucken()
Dim Zelle As Range
For Each Zelle In Range("A20:A" & Cells(Rows.Count, "A").End(xlUp).Row)
  Range("A" & Zelle.Row & ":F" & Zelle.Row).PrintOut preview:=True '<-preview zum Drucken auskommentieren
Next
End Sub
Gruß Jürgen
AW: Liste in Excel als Serienbrief drucken
fcs

Hallo Kay,
hier ein Makro-Gerüst, dass du an deine Tabellen und Daten anpassen muss.
Gruß
Franz

Sub DatenDrucken()
Dim wksDruck As Worksheet
Dim wksFilter As Worksheet
Dim lngZeile As Long
Const lngZeile1 As Long = 6 '1. datenzeile im Auswahlblatt
Set wksDruck = Worksheets("Druck") 'Blatt für Seriendruck
Set wksFilter = Worksheets("Filter") 'Blatt mit Auswahldaten
With wksFilter
For lngZeile = lngZeile1 To .Cells(.Rows.Count, 1).End(xlUp).Row
'Daten aus Zeile ins Druckblatt übertragen
wksDruck.Range("B2").Value = .Cells(lngZeile, 1).Value 'Wert aus Spalte 1
wksDruck.Range("D2").Value = .Cells(lngZeile, 2).Value 'Wert aus Spalte 2
'usw.
'Blatt drucken
wksDruck.PrintOut Preview:=True
Call DatenLoeschen
Next
End With
End Sub
Private Sub DatenLoeschen()
'Inhalte in Eingabezellen im Druckblatt löschen
Dim wksDruck As Worksheet
Set wksDruck = Worksheets("Druck") 'Blatt für Seriendruck
With wksDruck
'Eintragsfelder im Druckblatt leeren
.Range("B2").ClearContents
.Range("D2").ClearContents
'usw.
End With
End Sub


AW: Liste in Excel als Serienbrief drucken
KLE

Super und vielen Dank Jürgen und Franz...
werde beides ausprobieren und nach meinen Bedürfnissen anpassen !!!
Damit habt ihr mir mal wieder toll helfen können ;o)
Vielen Dank und Gruß aus Berlin
Kay
AW: Liste in Excel als Serienbrief drucken
KLE

Ich habe den Code noch etwas angepasst, da ich nur bestimmte Datensätze ausdrucken lassen möchte, welche einem Suchkriterium entsprechen...für den Fall der Fälle stelle ich diesen hier gern zur weiteren Verwendung, Anmerkung, Optimierung etc. zur Verfügung !
Gruß und Danke an Euch alle - Ihr seid echt Helden (Helfer in der Not !)
Kay

Sub DatenSerienDruck()
Dim wksDruck As Worksheet
Dim wksFilter As Worksheet
Dim lngZeile As Long
Dim Index As String
Dim iRow As Long
Dim Suchfeld As String
Application.ScreenUpdating = False
Const lngZeile1 As Long = 2                                     ' 1. datenzeile im  _
Auswahlblatt
Set wksDruck = Worksheets("Druck")                       ' Blatt für Seriendruck
Set wksFilter = Worksheets("Daten")                       ' Blatt mit Auswahldaten
Suchfeld = Sheets("Erfassung").Range("T4").Value  ' Filterkriterium
iRow = 2                                                                    ' Startzeile der  _
Datenliste
With wksFilter
For lngZeile = lngZeile1 To .Cells(.Rows.Count, 1).End(xlUp).Row
If Sheets("Erfassung").Range("AN5").Value = 1 Then
Index = Sheets("Daten").Range("H" & iRow).Value     ' Spalte H = KdVor- & Zuname als  _
Suchindex
Else
If Sheets("Erfassung").Range("AN5").Value = 2 Then
Index = Sheets("Daten").Range("I" & iRow).Value     ' Spalte I = KdName als Suchindex
Else
If Sheets("Erfassung").Range("AN5").Value = 3 Then
Index = Sheets("Daten").Range("K" & iRow).Value     ' Spalte K = KdVorname als Suchindex
Else
If Sheets("Erfassung").Range("AN5").Value = 4 Then
Index = Sheets("Daten").Range("L" & iRow).Value     ' Spalte L = FilialNr. (SID) als  _
Suchindex
Else
If Sheets("Erfassung").Range("AN5").Value = 5 Then
Index = Sheets("Daten").Range("M" & iRow).Value     ' Spalte M = RegNr. als Suchindex
Else
If Sheets("Erfassung").Range("AN5").Value = 6 Then
Index = Sheets("Daten").Range("E" & iRow).Value     ' Spalte E = VorfallNr als Suchindex
Else
If Sheets("Erfassung").Range("AN5").Value = 7 Then
Index = Sheets("Daten").Range("Y" & iRow).Value     ' Spalte Y = MA-Name als Suchindex
Else
If Sheets("Erfassung").Range("AN5").Value = 8 Then
Index = Sheets("Daten").Range("Z" & iRow).Value     ' Spalte Z = MA-ID als Suchindex
Else
If Sheets("Erfassung").Range("AN5").Value = 9 Then
Index = Sheets("Daten").Range("C" & iRow).Value     ' Spalte C = Kundenname als  _
Suchindex
Else
If Sheets("Erfassung").Range("AN5").Value = 10 Then
Index = Sheets("Daten").Range("D" & iRow).Value     ' Spalte D = SID-Reg als Suchindex/ _
nicht Benutzer
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
If Index = Suchfeld Then
'Daten aus Zeile ins Druckblatt übertragen
wksDruck.Range("D3").Value = .Cells(lngZeile, 2).Value 'Datensatz
wksDruck.Range("D5").Value = .Cells(lngZeile, 5).Value 'VorafllNr.
wksDruck.Range("D6").Value = .Cells(lngZeile, 6).Value 'Datum
wksDruck.Range("D8").Value = .Cells(lngZeile, 7).Value 'Anrede
wksDruck.Range("D9").Value = .Cells(lngZeile, 8).Value 'Vorname
wksDruck.Range("D10").Value = .Cells(lngZeile, 9).Value 'Nachname
wksDruck.Range("D11").Value = .Cells(lngZeile, 10).Value 'PLZ5
wksDruck.Range("D13").Value = .Cells(lngZeile, 11).Value 'VK-Datum
wksDruck.Range("D14").Value = .Cells(lngZeile, 12).Value 'SID
wksDruck.Range("D15").Value = .Cells(lngZeile, 13).Value 'RegNr
wksDruck.Range("D17").Value = .Cells(lngZeile, 14).Value 'ArtikelNr
wksDruck.Range("D18").Value = .Cells(lngZeile, 15).Value 'Artikelname
wksDruck.Range("D19").Value = .Cells(lngZeile, 16).Value 'SerienNr.1
wksDruck.Range("D21").Value = .Cells(lngZeile, 17).Value 'ArtikelNr.2
wksDruck.Range("D22").Value = .Cells(lngZeile, 18).Value 'Artikelname2
wksDruck.Range("D23").Value = .Cells(lngZeile, 19).Value 'SN 2
wksDruck.Range("D24").Value = .Cells(lngZeile, 20).Value 'WG
wksDruck.Range("D26").Value = .Cells(lngZeile, 21).Value 'WUG
wksDruck.Range("D28").Value = .Cells(lngZeile, 22).Value 'DBProv
wksDruck.Range("D29").Value = .Cells(lngZeile, 23).Value 'ProvWG
wksDruck.Range("D30").Value = .Cells(lngZeile, 24).Value 'MAProv
wksDruck.Range("D31").Value = .Cells(lngZeile, 27).Value 'VK netto
wksDruck.Range("D32").Value = .Cells(lngZeile, 28).Value 'Endbetrag
wksDruck.Range("D34").Value = .Cells(lngZeile, 25).Value 'MA-Name
wksDruck.Range("D35").Value = .Cells(lngZeile, 26).Value 'MA PID
wksDruck.Range("D37").Value = .Cells(lngZeile, 29).Value 'Bemerkung
wksDruck.Range("D40").Value = .Cells(lngZeile, 30).Value 'letzte Änderung
wksDruck.Range("D41").Value = .Cells(lngZeile, 31).Value 'Änderung durch KZ
wksDruck.PrintOut 'Preview:=True
End If
iRow = iRow + 1
Zähler = Zähler + 1
Next
End With
Application.ScreenUpdating = True
End Sub


Anzeige
AW: Liste in Excel als Serienbrief drucken
25.09.2008 10:41:00
fcs
Hallo Kay,
hier ein Makro-Gerüst, dass du an deine Tabellen und Daten anpassen muss.
Gruß
Franz

Sub DatenDrucken()
Dim wksDruck As Worksheet
Dim wksFilter As Worksheet
Dim lngZeile As Long
Const lngZeile1 As Long = 6 '1. datenzeile im Auswahlblatt
Set wksDruck = Worksheets("Druck") 'Blatt für Seriendruck
Set wksFilter = Worksheets("Filter") 'Blatt mit Auswahldaten
With wksFilter
For lngZeile = lngZeile1 To .Cells(.Rows.Count, 1).End(xlUp).Row
'Daten aus Zeile ins Druckblatt übertragen
wksDruck.Range("B2").Value = .Cells(lngZeile, 1).Value 'Wert aus Spalte 1
wksDruck.Range("D2").Value = .Cells(lngZeile, 2).Value 'Wert aus Spalte 2
'usw.
'Blatt drucken
wksDruck.PrintOut Preview:=True
Call DatenLoeschen
Next
End With
End Sub
Private Sub DatenLoeschen()
'Inhalte in Eingabezellen im Druckblatt löschen
Dim wksDruck As Worksheet
Set wksDruck = Worksheets("Druck") 'Blatt für Seriendruck
With wksDruck
'Eintragsfelder im Druckblatt leeren
.Range("B2").ClearContents
.Range("D2").ClearContents
'usw.
End With
End Sub


Anzeige
AW: Liste in Excel als Serienbrief drucken
25.09.2008 13:58:00
KLE
Super und vielen Dank Jürgen und Franz...
werde beides ausprobieren und nach meinen Bedürfnissen anpassen !!!
Damit habt ihr mir mal wieder toll helfen können ;o)
Vielen Dank und Gruß aus Berlin
Kay
AW: Liste in Excel als Serienbrief drucken
25.09.2008 17:59:00
KLE
Ich habe den Code noch etwas angepasst, da ich nur bestimmte Datensätze ausdrucken lassen möchte, welche einem Suchkriterium entsprechen...für den Fall der Fälle stelle ich diesen hier gern zur weiteren Verwendung, Anmerkung, Optimierung etc. zur Verfügung !
Gruß und Danke an Euch alle - Ihr seid echt Helden (Helfer in der Not !)
Kay

Sub DatenSerienDruck()
Dim wksDruck As Worksheet
Dim wksFilter As Worksheet
Dim lngZeile As Long
Dim Index As String
Dim iRow As Long
Dim Suchfeld As String
Application.ScreenUpdating = False
Const lngZeile1 As Long = 2                                     ' 1. datenzeile im  _
Auswahlblatt
Set wksDruck = Worksheets("Druck")                       ' Blatt für Seriendruck
Set wksFilter = Worksheets("Daten")                       ' Blatt mit Auswahldaten
Suchfeld = Sheets("Erfassung").Range("T4").Value  ' Filterkriterium
iRow = 2                                                                    ' Startzeile der  _
Datenliste
With wksFilter
For lngZeile = lngZeile1 To .Cells(.Rows.Count, 1).End(xlUp).Row
If Sheets("Erfassung").Range("AN5").Value = 1 Then
Index = Sheets("Daten").Range("H" & iRow).Value     ' Spalte H = KdVor- & Zuname als  _
Suchindex
Else
If Sheets("Erfassung").Range("AN5").Value = 2 Then
Index = Sheets("Daten").Range("I" & iRow).Value     ' Spalte I = KdName als Suchindex
Else
If Sheets("Erfassung").Range("AN5").Value = 3 Then
Index = Sheets("Daten").Range("K" & iRow).Value     ' Spalte K = KdVorname als Suchindex
Else
If Sheets("Erfassung").Range("AN5").Value = 4 Then
Index = Sheets("Daten").Range("L" & iRow).Value     ' Spalte L = FilialNr. (SID) als  _
Suchindex
Else
If Sheets("Erfassung").Range("AN5").Value = 5 Then
Index = Sheets("Daten").Range("M" & iRow).Value     ' Spalte M = RegNr. als Suchindex
Else
If Sheets("Erfassung").Range("AN5").Value = 6 Then
Index = Sheets("Daten").Range("E" & iRow).Value     ' Spalte E = VorfallNr als Suchindex
Else
If Sheets("Erfassung").Range("AN5").Value = 7 Then
Index = Sheets("Daten").Range("Y" & iRow).Value     ' Spalte Y = MA-Name als Suchindex
Else
If Sheets("Erfassung").Range("AN5").Value = 8 Then
Index = Sheets("Daten").Range("Z" & iRow).Value     ' Spalte Z = MA-ID als Suchindex
Else
If Sheets("Erfassung").Range("AN5").Value = 9 Then
Index = Sheets("Daten").Range("C" & iRow).Value     ' Spalte C = Kundenname als  _
Suchindex
Else
If Sheets("Erfassung").Range("AN5").Value = 10 Then
Index = Sheets("Daten").Range("D" & iRow).Value     ' Spalte D = SID-Reg als Suchindex/ _
nicht Benutzer
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
If Index = Suchfeld Then
'Daten aus Zeile ins Druckblatt übertragen
wksDruck.Range("D3").Value = .Cells(lngZeile, 2).Value 'Datensatz
wksDruck.Range("D5").Value = .Cells(lngZeile, 5).Value 'VorafllNr.
wksDruck.Range("D6").Value = .Cells(lngZeile, 6).Value 'Datum
wksDruck.Range("D8").Value = .Cells(lngZeile, 7).Value 'Anrede
wksDruck.Range("D9").Value = .Cells(lngZeile, 8).Value 'Vorname
wksDruck.Range("D10").Value = .Cells(lngZeile, 9).Value 'Nachname
wksDruck.Range("D11").Value = .Cells(lngZeile, 10).Value 'PLZ5
wksDruck.Range("D13").Value = .Cells(lngZeile, 11).Value 'VK-Datum
wksDruck.Range("D14").Value = .Cells(lngZeile, 12).Value 'SID
wksDruck.Range("D15").Value = .Cells(lngZeile, 13).Value 'RegNr
wksDruck.Range("D17").Value = .Cells(lngZeile, 14).Value 'ArtikelNr
wksDruck.Range("D18").Value = .Cells(lngZeile, 15).Value 'Artikelname
wksDruck.Range("D19").Value = .Cells(lngZeile, 16).Value 'SerienNr.1
wksDruck.Range("D21").Value = .Cells(lngZeile, 17).Value 'ArtikelNr.2
wksDruck.Range("D22").Value = .Cells(lngZeile, 18).Value 'Artikelname2
wksDruck.Range("D23").Value = .Cells(lngZeile, 19).Value 'SN 2
wksDruck.Range("D24").Value = .Cells(lngZeile, 20).Value 'WG
wksDruck.Range("D26").Value = .Cells(lngZeile, 21).Value 'WUG
wksDruck.Range("D28").Value = .Cells(lngZeile, 22).Value 'DBProv
wksDruck.Range("D29").Value = .Cells(lngZeile, 23).Value 'ProvWG
wksDruck.Range("D30").Value = .Cells(lngZeile, 24).Value 'MAProv
wksDruck.Range("D31").Value = .Cells(lngZeile, 27).Value 'VK netto
wksDruck.Range("D32").Value = .Cells(lngZeile, 28).Value 'Endbetrag
wksDruck.Range("D34").Value = .Cells(lngZeile, 25).Value 'MA-Name
wksDruck.Range("D35").Value = .Cells(lngZeile, 26).Value 'MA PID
wksDruck.Range("D37").Value = .Cells(lngZeile, 29).Value 'Bemerkung
wksDruck.Range("D40").Value = .Cells(lngZeile, 30).Value 'letzte Änderung
wksDruck.Range("D41").Value = .Cells(lngZeile, 31).Value 'Änderung durch KZ
wksDruck.PrintOut 'Preview:=True
End If
iRow = iRow + 1
Zähler = Zähler + 1
Next
End With
Application.ScreenUpdating = True
End Sub


Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige