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

PDF über Schleife erstellen

PDF über Schleife erstellen
21.03.2024 08:46:55
Hardy R
Guten Morgen,

bräuchte Hilfe bei der Erstellung einer Gesamt-PDF.

Im Blatt Trennerrevision wird die Funktion zur Erstellung der PDF aufgerufen. Einzelne zu erstellen ist für mich kein Problem.
Da es sich hier um 138 Blätter handelt, die über eine Schleife erstellt werden, benötige ich Hilfe bei der Ausgabe als eine Gesamt-PDF.

Mein bisheriger VBA Code hat noch Handlungsbedarf.

Sub PDF_Export()

Dim strFile, strName As String, Text As String ' , strOrdner As String



' For i = 2 To 138 ' Zeilen die zu erfassen sind

For i = 93 To 105 ' Testzeilen

Sheets("Ausgabe").Select ' Trennerblatt aktivieren
Sheets("Ausgabe").Range("K5") = Sheets("Zusammenfassung").Cells(i, 1) ' Trennernummer in Blatt Ausgabe Zelle (K5) schreiben
' die anderen Daten kommen per Formel bezogen auf die Trennernummer

' Sheets("Ausgabe").Range("K5") = i ' Trennernummer in Blatt Ausgabe Zelle (K5) schreiben

strPfad = ThisWorkbook.Path ' & strOrdner
strName = Left$(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") - 1) ' Dateiname erfassen

' strName = Left$(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") - 1) & Sheets("Zusammenfassung").Cells(i, 1)
' ^^ bei Einzelblattspeicherung (funktioniert)

'If Dir(strPfad, vbDirectory) = "" Then MkDir (strPfad) ' Prüfen ob Verzeichnis existiert wenn nicht, erstellen


Next i ' nächster Trenner bei einer großen Datei

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
strName, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False ' PDF export (eventuell auf True, wenn gewünscht)
' ^^ eventuell strName durch strPfad ersetzen wenn anderer
' Speicherort gewünscht (strPfad / strOrdner / strName )in Kombination

' Next i ' nur, wenn einzelne PDFs erstellt werden sollen

Sheets("Trennerrevision").Select ' Startblatt aktivieren

End Sub


Danke Euch für Eure Mithilfe
https://www.herber.de/bbs/user/168200.xlsm

Hardy R

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

Betreff
Datum
Anwender
Anzeige
AW: PDF über Schleife erstellen
21.03.2024 09:30:25
Herbert Grom
Hallo Hardy,

meine Idee wäre, die 138 Blätter in eine neue Zwischendatei zu schreiben, dort dann alle Blätter markieren und als pdf speichern. Die Zwischendatei kannst du dann ja löschen. Probiers mal.

Servus
AW: PDF über Schleife erstellen
21.03.2024 11:18:36
Hardy R
Hallo Herbert,

die Idee ist Sinnvoll, UweD hat mir hierfür eine Möglichkeit gegeben, die ich mir mal genauer anschauen werde.

Danke Dir für den Tip.

Gruß
Hardy R
mehrseitige PDF-Datei erstellen
21.03.2024 10:28:31
Beverly
Hi Hardi,

nach diesem Prinzip, bei dem alle zu exportierenden Blätter in ein Array geschrieben werden, woraus eine neue Arbeitsmappe erstellt wird, die dann als PDF exportiert wird:

Sub PDF_erstellen()

Dim arrTabs()
Dim wksTab As Worksheet
Dim intZaehler As Integer
Dim strName As String
intZaehler = 1
strName = ThisWorkbook.Name '== an deine Bedingungen entsprechend anpassen
ReDim arrTabs(1 To ThisWorkbook.Worksheets.Count - 1) ' alle Blätter außer einem (welches nicht exportiert werden soll)
' alle Blattnamen in das Array schreiben
For Each wksTab In ThisWorkbook.Worksheets
If wksTab.Name > "Tabelle1" Then '== Name des Blattes welches nicht exportiert werden soll!!
arrTabs(intZaehler) = wksTab.Name
intZaehler = intZaehler + 1
End If
Next wksTab
ThisWorkbook.Worksheets(arrTabs).Copy
With ActiveWorkbook
.ExportAsFixedFormat _
Type:=xlTypePDF, Filename:=strName, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
.Close False
End With
End Sub


Beachte bitte die Hinweise im Code.

Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Anzeige
AW: mehrseitige PDF-Datei erstellen
21.03.2024 11:16:52
Hardy R
Hallo Beverly,

Danke für deinen Vorschlag, aber ist glaub ich nicht das, was ich wollte.
Bei mir werden die Änderungen 138 mal in die Ausgabe geschrieben und und sollen nach jedem schreiben in ein gemeinsames PDF exportiert werden.

Ich denke, UweD hat da den richtigen Ansatz gefunden.

Danke Dir

Gruß

Hardy R
AW: mehrseitige PDF-Datei erstellen
21.03.2024 11:31:05
Beverly
Hi Hardy,

ich denke schon, dass mein Code das macht was du erreichen willst - du möchtest zuerst alle Blätter erstellen und anschließend alle erstellten Blätter in einem gemeinsamen PDF-Dokument zusammenführen? Den Code für das Erstellen der Blätter hast du doch bereits - meiner erledigt dann noch den Rest: aus den erstellten Blättern wird eine gemeinsame PDF-Datei erstellt...

Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Anzeige
AW: mehrseitige PDF-Datei erstellen
21.03.2024 13:12:52
UweD
Hallo Beverly

- Bisher hat er im Blatt einen Wert verändert,
- durch z.B. sverweis wurden dann andere Felder auch verändert.
- Er hat das pdf erzeugt und dann den Nächsten Wert reingeschrieben, (wieder Formelzellen aktualisiert)
=> Es ist aber immer nur ein Blatt (mit Formeln) gewesen

Wenn er das Blatt x mal kopiert, müssen die Formelwerte jedesmal "fixiert" werden.

LG UweD
AW: mehrseitige PDF-Datei erstellen
21.03.2024 14:32:59
Beverly
Hi Uwe,

die einzige Frage war:
  • ...benötige ich Hilfe bei der Ausgabe als eine Gesamt-PDF.
  • ;-)

    Bis später
    Karin

    Link zur Homepage: https://excel-inn.de/


    Anzeige
    AW: mehrseitige PDF-Datei erstellen
    21.03.2024 17:35:05
    Hardy R
    Hallo Karin,

    eigentlich wollte ich die Arbeitsblätter nur temporär für die PDF ausgabe erstellen.
    Mir war nur nicht klar, wie ich sie nacheinander in eine gemeinsame PDF bekomme.
    In der Ursprünglichen Mappe sollten sie nicht dauerhaft erzeugt werden.
    Mit Uwe's Code war dies möglich, da er eine zweite Arbeitmappe aufmacht, wo die generierten Blätter eingefügt wurden.
    Habe mich diesbezüglich vielleicht nicht ganz so deutlich ausgedrückt.

    Ich wollte auch nicht deine Kompetenz anzweifeln. Als ich anmerkte das es nicht ganz trifft, was ich versucht habe zu beschreiben. Mein Code erzeugte zwar die 138 Dateien, überschrieb aber immer die vorherige. Als direkter Ausdruck auf einem Drucker wäre es OK gewesen, nur nicht zum speichern.
    138 einzelne Dateien mit angepasstem Namen wollte ich nicht haben
    Das Problem ist halt manchmal, die Frage präzise genug zu stellen, was man hier im Forum doch häufig erlebt.

    Bisher ist es mir mit eurer Hilfe meistens gelungen, meine Projekte zu verwirklichen, oder auch meine Arbeit zu erleichtern.
    Mit VBA stehe ich noch ein wenig auf Kriegsfuß. Manche Sachen kann ich anpassen aber manche halt auch nicht. Onlinerecherche hilft mir hier manchmal weiter.

    Beruflich habe ich relativ häufig mit Excel zu tun und helfe auch Kollegen, wenn ich dazu in der Lage bin.

    Meine hauptsächliche Aufgabe ist die Beteueng und Programierung unseres Fernwirksystems inklusive Bildgenerierung. Programierung und Inbetriebnahme von Unterstationen und Auswertung von Mess- und Prozesswerten was ich auch über Excel erledige.
    Der zweite Bereich ist die Datenversorgung von Anforderungssystemen für den ÖPNV, was zum großen Teil bei uns auch über Excel und Macros läuft, die ich geschrieben oder angepasst habe.

    Ich danke Dir trotzdem für Deine Hilfe und werde mir deinen Code auch noch mal zu gemüte führen

    LG

    Hardy R
    Anzeige
    AW: PDF über Schleife erstellen
    21.03.2024 10:53:34
    UweD
    Beverly war schneller, aber ich habe auch eine Lösung.

    - Die Blätter werden in eine neue Datei kopiert,
    - die Formeln in Werte ersetzt
    - Die ganze Datei als PDF gedruckt
    - ohne Speichern wieder gelöscht

    Sub PDF_Export()
    
    Dim strFile, strName As String
    Dim Wb1 As Workbook, Wb2 As Workbook

    Application.ScreenUpdating = False

    strPfad = ThisWorkbook.Path
    strName = Left$(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") - 1)

    Set Wb1 = ThisWorkbook
    Set Wb2 = Workbooks.Add 'Temporäre Datei

    For i = 93 To 105

    With Wb1.Sheets("Ausgabe")
    .Range("K5") = Wb1.Sheets("Zusammenfassung").Cells(i, 1)

    'Musterblatt kopieren in neue Datei
    .Copy after:=Wb2.Sheets(Wb2.Sheets.Count) 'oder after:= WB2.Sheets(1) 'entscheidet Reihenfolge beim Druck
    With Wb2.ActiveSheet
    .Name = .Range("K5") 'benennen
    .UsedRange.Value = .UsedRange.Value ' Formeln in Werte
    End With

    End With

    Next i

    Application.DisplayAlerts = False
    Wb2.Sheets(1).Delete 'erste Blatt der TempDatei löschen

    'Gesammte Datei ausgeben
    Wb2.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strPfad & "\" & _
    strName, Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

    Wb2.Close False 'Schließen ohne Speichern

    Application.DisplayAlerts = True

    Wb1.Sheets("Trennerrevision").Select ' Startblatt aktivieren

    End Sub


    LG UweD
    Anzeige
    AW: PDF über Schleife erstellen
    21.03.2024 11:13:52
    Hardy R
    Hallo Uwe,

    ich denke mal das ist das was ich benötige.
    Werde das mal bei mir einbauen und schauen, was passiert.

    Danke Dir schon mal

    Gruß

    Hardy R

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige