Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1588to1592
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

einzelne Tabellen erstellen und in PDF umwandeln

einzelne Tabellen erstellen und in PDF umwandeln
08.11.2017 12:51:08
Bettina
Hallo zusammen,
ich hätte eine Frage. Ich habe eine Tabelle mit einer Spalte A in der verschiedene Nummernkreise stehen. Zu jeder der Nummern gibt es mehrere Zeilen. Ich bräuchte jetzt ein Makro welches zu jeder der Nummern ein eigenes PDF mit allen dazugehörenden Zeilen erstellt und dieses PDF dann mit der Nummer im Namen abspeichert.
Also konkret steht in Spalte A1-A8 zB. 100222 - die Zeilen sollten dann in ein PDF umgewandelt werden und als Datei 100222.pdf abgespeichert werden.
Ich hätte es bereits mit mehreren Seitenumbrüchen (nach jedem Nummernkreis) versucht, bin aber da an meine Grenzen gestoßen ;-).
Vielen Dank schonmal und liebe Grüße
Bettina

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Doppelt - owT
08.11.2017 12:53:22
Bernd
AW: gleiche Fragestelung wie vor einer Stunde? ...
08.11.2017 13:03:14
...
Hallo Bettina,
... nur den Betreff hast Du geändert. Das was Du möchtest, kann man auch "per Hand" abwickeln, indem Du z.B. mit dem Autofilter in Deiner Spalte A arbeitest, wenn es Dir so pressieren sollte.
Gruß Werner
.. , - ...
AW: gleiche Fragestelung wie vor einer Stunde? ...
08.11.2017 13:20:50
Bettina
Entschuldigung, ich wollte die Anfrage nicht 2 Mal stellen, habe aber leider den letzten Eintrag nicht mehr gefunden.
Ich kenne zwar den Autofilter, aber kann ich mit dem auch irgendwie bewirken dass die PDFs dann mit dem richtigen Dateinamen abgespeichert werden?
Danke für die Hilfe,
VG
AW: gleiche Fragestelung wie vor einer Stunde? ...
08.11.2017 13:22:38
Bernd
Hi,
hier Dein noch offener Beitrag vom 08.11.2017 11:47:26
https://www.herber.de/forum/messages/1590183.html
MfG Bernd
Anzeige
AW: zwei Möglichkeiten ...
08.11.2017 13:29:00
...
Hallo Bettina,
... Du kannst warten, bis eine VBAler Dir in Deinem ersten thread oder hier eine entsprechende Routine schreibt oder wenn Dich die Zeit drängt, dann nutze den Autofilter zur Darstellung der jeweiligen Ausgabezeilen und speichere die Datei im PDF-Ausgabeformat unter dem Namen der gefilterten Nummer (entweder per Handeingabe oder per händischen Kopie der gefilterten Nummer als Ausgabedateiname).
Gruß Werner
.. , - ...
Hier eine VBA-Möglichkeit...
08.11.2017 13:33:35
Michael
Hallo Bettina!
Folgendes Makro muss in ein allgemeines Modul (mit [Alt] + [F11] den VBA-Editor aufrufen, Einfügen, Modul, da einfügen). Die PDF-Dateien werden in das Verzeichnis gespeichert, in dem auch die Excel-Datei liegt (diese MUSS gespeichert sein).
Der Code kann uU an Deinen Anforderungen vorbeigehen, weil Deine konkreten Bedingungen nicht bekannt sind, aber teste mal:
Sub a()
Dim WbQ As Workbook: Set WbQ = ThisWorkbook
Dim WbZ As Workbook
Dim WsQ As Worksheet: Set WsQ = WbQ.Worksheets("Tabelle1")
Dim WsZ As Worksheet, r As Range
Dim a, aL As Object, i&, Pfad$
Application.ScreenUpdating = False
Pfad = WbQ.Path & "\"
Set aL = CreateObject("System.Collections.ArrayList")
With WsQ
If .AutoFilterMode Then .AutoFilterMode = False
.Range("A1").EntireRow.Insert xlDown
a = .Range("A2:A" & .Cells(.Rows.Count, 1).End(xlUp).Row)
For i = LBound(a) To UBound(a)
If Not aL.contains(a(i, 1)) Then aL.Add a(i, 1)
Next i
Set r = .Range("A1:F" & .Cells(.Rows.Count, 1).End(xlUp).Row)
With r
For i = 0 To aL.Count - 1
WsQ.AutoFilterMode = False
.AutoFilter field:=1, Criteria1:=aL.Item(i)
WsQ.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Copy
Set WbZ = Workbooks.Add(xlWBATWorksheet)
Set WsZ = WbZ.Worksheets(1)
WsZ.Cells(1, 1).PasteSpecial xlPasteValuesAndNumberFormats
WsZ.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=Pfad & aL.Item(i) & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
WbZ.Close False
Next i
.Range("A1").EntireRow.Delete xlUp
End With
.AutoFilterMode = False
End With
Set WbQ = Nothing: Set WbZ = Nothing: Set WsQ = Nothing
Set WsZ = Nothing: Set r = Nothing: Erase a: aL.Clear
End Sub
LG
Michael
Anzeige
AW: Hier eine VBA-Möglichkeit...
08.11.2017 13:49:08
Bettina
Hallo,
vielen Dank für deine Antwort, das Macro funktioniert soweit, allerdings wird die Formatierung nicht übernommen. Das heißt die Druckformatierung, wie sie bei dem manuellen Druck ist, wird nicht auf die PDFs übernommen. Kann man das im Makro vielleicht irgendwie reinschreiben, dass es die Druckeinstellungen übernehmen soll? Die Tabellen sollten im Querformat und jeweils mit der gesperrten Überschrift generiert werden.
Danke auf jeden Fall schonmal für die rasche Hilfe!!
LG
Mit Formaten...
08.11.2017 14:02:19
Michael
...so
Sub a()
Dim WbQ As Workbook: Set WbQ = ThisWorkbook
Dim WbZ As Workbook
Dim WsQ As Worksheet: Set WsQ = WbQ.Worksheets("Tabelle1")
Dim WsZ As Worksheet, r As Range
Dim a, aL As Object, i&, Pfad$
Application.ScreenUpdating = False
Pfad = WbQ.Path & "\"
Set aL = CreateObject("System.Collections.ArrayList")
With WsQ
If .AutoFilterMode Then .AutoFilterMode = False
.Range("A1").EntireRow.Insert xlDown
a = .Range("A2:A" & .Cells(.Rows.Count, 1).End(xlUp).Row)
For i = LBound(a) To UBound(a)
If Not aL.contains(a(i, 1)) Then aL.Add a(i, 1)
Next i
Set r = .Range("A1:F" & .Cells(.Rows.Count, 1).End(xlUp).Row)
With r
For i = 0 To aL.Count - 1
WsQ.AutoFilterMode = False
.AutoFilter field:=1, Criteria1:=aL.Item(i)
WsQ.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Copy
Set WbZ = Workbooks.Add(xlWBATWorksheet)
Set WsZ = WbZ.Worksheets(1)
WsZ.Cells(1, 1).PasteSpecial xlPasteValues
WsZ.Cells(1, 1).PasteSpecial xlPasteFormats
WsZ.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=Pfad & aL.Item(i) & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
WbZ.Close False
Next i
.Range("A1").EntireRow.Delete xlUp
End With
.AutoFilterMode = False
End With
Set WbQ = Nothing: Set WbZ = Nothing: Set WsQ = Nothing
Set WsZ = Nothing: Set r = Nothing: Erase a: aL.Clear
End Sub
LG
Michael
Anzeige
AW: Mit Formaten...
08.11.2017 14:17:04
Bettina
Ok, es ist schon fast perfekt :-)! Jetzt fehlt mir nur noch die Überschrift auf jedem PDF. Die Überschrift steht in der ersten Zeile (A1-F1).
Vielen Dank!!
Hmm...
08.11.2017 14:50:44
Michael
Hallo!
1. Bitte gewöhne Dir an ALLE Fakten zu den konkreten Bedingungen in Deiner Mappe von Anfang an in Deiner Frage anzugeben, notfalls liefere eine kleine Bsp-Datei mit. Sonst wird viel Code unnötig geschrieben und es braucht vielfache Anläufe bis Du das hast was Du brauchst; ist für jedeN HelferIn sehr mühsam, wenn's auch gleich beim ersten Mal klappen könnte.
2. Ich darf Dich zitieren: Also konkret steht in Spalte A1-A8 zB. 100222
Jetzt schreibst Du Die Überschrift steht in der ersten Zeile (A1-F1).
Aus meiner Sicht (ich kenne Deine Datei nicht!) widerspricht sich das. Was gilt?
LG
Michael
Anzeige

338 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige