Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1528to1532
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 Schleifenmakro

PdF Schleifenmakro
14.12.2016 20:54:04
Daniel
Hallo Zusammen
Ich habe in einer Exceldatei 50 Personalblätter und eine Druckforlage die davon abhängig ist welches Personaldatenblatt aktiv ist.
Wenn ich dies als PDF in einer Schleife exportieren möchte, bleibt mir natürlich durch denn Blattwechsel das Makro stehen, dass heisst er bleibt beim Personalblatt P1 stehen. Ich stehe auf dem Schlauch, kann mir jemand helfen
Sub Drucken_AdF()
Dim Tbl
'Änderungen an allen Personalblätter P1-P50
For Tbl = 1 To 3
Sheets("P" & Tbl).Select
Abrechnung
Next Tbl
End Sub
Sub Abrechnung()
With Sheets("BriefD").PageSetup
.PaperSize = xlPaperA4  'Festlegung auf Hochformat
.Orientation = xlPortrait  'Seitenbreite definieren
.FitToPagesWide = 1   'Seitenhöhe definieren
.FitToPagesTall = False
.Zoom = False
Sheets("BriefD").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ThisWorkbook.Path & "\" & Range("E4").Value & "_" & Format(Date, "YYYYMMDD") & ".pdf", Quality:= _
xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
End With
End Sub
Gruss Daniel

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: PdF Schleifenmakro
15.12.2016 09:16:11
UweD
Hallo
so könnte es klappen:
Sub Drucken_AdF()
    Dim i As Integer, TBL
    'Änderungen an allen Personalblätter P1-P50 
    
    For i = 1 To 3
        TBL = "P" & i
        Abrechnung (TBL)
    Next i

End Sub

Sub Abrechnung(TBL)

    With Sheets("BriefD").PageSetup
        .PaperSize = xlPaperA4  'Festlegung auf Hochformat 
        .Orientation = xlPortrait  'Seitenbreite definieren 
        .FitToPagesWide = 1   'Seitenhöhe definieren 
        .FitToPagesTall = False
        .Zoom = False
    End With
    Sheets("BriefD").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        ThisWorkbook.Path & "\" & Sheets(TBL).Range("E4").Value & "_" & Format(Date, "YYYYMMDD") & ".pdf", _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=False
End Sub
Wobei es Quatsch ist, immer wieder das Blatt "BriefD" zu formatieren.
Ebenso wird ja immer nur das gleiche Blatt gedruckt, nur der Name der PDF wird geändert.
Dann kannst du anstelle Drucken auch die einmal erstellte PDF x-mal kopieren.
LG UweD
Anzeige
AW: PdF Schleifenmakro
15.12.2016 19:32:25
Daniel
Danke für die Antwort
Leider kommts auch zum Laufzeitfehler, genau wie bei meiner Version.
Ja du hast recht es ist im Prinzip immer das gleiche Blatt, aber durch denn "Rücksprung" odewr wechsel des Personalblattes werden die Daten auf dem gesammmten Blatt automatisch auf die Person angepasst!
Ob ich das Blatt immer wieder formatieren muss oder einmal ausreicht weiss ich nicht, da bin ich zuwenig sattelfest im VBA.
Gruss Daniel
dann bitte mal Musterdatei hochladen
16.12.2016 13:09:54
UweD
anonymisiert
AW: dann bitte mal Musterdatei hochladen
16.12.2016 16:46:48
Daniel
Hallo Uwe
Würde ich gerne, leider aber sind die Uploads begrenzt auf 300Kb, meine Datei hat in der Zwischenzeit aber ca 4.5Mb?
Anzeige
AW: dann bitte mal Musterdatei hochladen
17.12.2016 20:23:37
UweD
Hallo
die Ursache liegt in E4 in den Blättern P1, P2 usw.
Dort wird über den Sverweis ein #NV ausgegeben. Die Zelle hast du weiss formatiert, deshalb
kann man den Fehler nicht sehen.
Userbild
Wenn da wirklich NICHTS drin stehen soll, dann musst du dort eine Fehlerbehandlung einbauen.
So in der Art = Wennfehler(Deine Formel;"")
Aus dieser Zelle wird ja dann im Makro der Dateiname zusammengesetzt.
Und das führt dort zu einem Abbruch...
Übrigens: der Sverweis bezieht sich auf E3 und dort steht nichts. Was dann den #NV auslöst
LG UweD
Anzeige
AW: dann bitte mal Musterdatei hochladen
18.12.2016 05:23:37
Daniel
Hallo
Ok mit dem Fehler hast Du insofern recht dass dieser vorhanden ist! Ich weiss allerdings nicht mehr für was diese Formel ursprünglich war. Habe diese Formel in allen Blättern gelöscht.
Denn der Verweiss für den Blattname bezieht sich nicht aufs Personalblatt sondern.
Sheets("BriefD").Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ThisWorkbook.Path & "\" & ActiveSheet.Range("E4").Value & "_" & Format(Date, "YYYYMMDD") & ".pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
bezieht sich dies auf die Druckvorlage.
Aber ich habe es geschafft, ich hatte ein Überlegungsfehler
Die Personaldatenblätter werden über die Ribbonleiste gewechselt, dass befüllt aber auch die Druckvorlage mit denn aktuellen Personaldaten. Logischerweisse blieben dort aber einfach die Daten stehen da ich in VBA den Wechsel nicht über die Ribbonleiste machte.
Habe bei allen Personalblättern nun noch denn Code dahinter gehängt, nun läufts!
Private Sub Worksheet_Activate()
Worksheets("Datenmotor").Range("B55").Value = Range("C1").Value
End Sub
Besten Dank für deine Mithilfe
Gruss Daniel
Anzeige
AW: prima
18.12.2016 05:57:16
UweD
.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige