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

Hilfe: PDF drucken

Hilfe: PDF drucken
15.04.2021 11:43:33
Eisi
Hallo zusammen,
seit 2 Tagen hänge ich fest. Mit nachfolgendem Code möchte ich aus einem Sheet mit markierten Druckbereich eine PDF mit 3 Seiten drucken. In eine bestimmte Datei speichern und mit dem Dateinamen in der Zelle B4.
Der Code bringt mir die Fehlermeldung: Laufzeitfehler 91: Objektvariable oder With-Blockvariable nicht festgelegt.
Ich kann das leider nicht auflösen. Kann mir jemand bitte helfen?
Vielen Dank.
VG Eisi :-)
Sub AngebotDruckenAberWie()
Dim RechNr As Long
Dim Jahr   As Integer
Jahr = ActiveWorkbook.BuiltinDocumentProperties(6)
RechNr = ActiveWorkbook.BuiltinDocumentProperties(5) '(Mit 1 Zähler auf Null stellen) (5 zä _
hlt hoch)
If Application.Dialogs(xlDialogPrinterSetup).Show = False Then Exit Sub
If Jahr  Year(Date) Then
RechNr = 0
Jahr = Year(Date)
ActiveWorkbook.BuiltinDocumentProperties(6) = Jahr
End If
RechNr = RechNr + 1
ActiveWorkbook.BuiltinDocumentProperties(5) = RechNr
Range("B4") = Format(RechNr, "0000") & " - " & Jahr & " / " & Range("E1")
'_________________________________________________________________________________________
Dim strDruckeAngebot As String
Dim rngDateiName As Range
rngDateiName = [B4].Value
strDruckeAngebot = "C:\Angebote" & rngDateiName
With ActiveSheet.PageSetup
.Orientation = xlPortrait
.PrintArea = "$B$3:$I$176"
.Zoom = False
.FitToPagesTall = False
.FitToPagesWide = 1
End With
Dim ws     As Worksheet
Set ws = ActiveSheet
ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strDruckeAngebot, _
Quality:=xlQualityStandard, IncludeDocProperties:=True,  _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: vllt. so: Dim rngDateiName As String
15.04.2021 12:06:49
JoWE
AW: vllt. so: Dim rngDateiName As String
15.04.2021 12:09:02
Eisi
Danke für das Feedback. Geht aber auch nicht.
AW: vllt. so: Dim rngDateiName As String
15.04.2021 12:33:42
JoWE
Hallo,
versuchs mal so.
Option Explicit
Sub AngebotDruckenAberWie()
' Angebotsnummer einstellen
Dim RechNr As Long
Dim Jahr   As Integer
Jahr = ActiveWorkbook.BuiltinDocumentProperties(6)
RechNr = ActiveWorkbook.BuiltinDocumentProperties(5) '(Mit 1 Zähler auf Null stellen) (5 zä _
hlt hoch)
If Application.Dialogs(xlDialogPrinterSetup).Show = False Then Exit Sub
If Jahr  Year(Date) Then
RechNr = 0
Jahr = Year(Date)
ActiveWorkbook.BuiltinDocumentProperties(6) = Jahr
End If
RechNr = RechNr + 1
ActiveWorkbook.BuiltinDocumentProperties(5) = RechNr
Range("B4") = Format(RechNr, "0000") & " - " & Jahr & " _ " & Range("E1")
'_________________________________________________________________________________________
' Ausdruck als PDF ausführen
Dim strDruckeAngebot As String
Dim rngDateiName As String
rngDateiName = Range("B4").Value
strDruckeAngebot = "C:\Angebote\" & rngDateiName
With ActiveSheet.PageSetup
.Orientation = xlPortrait
.PrintArea = "$B$3:$I$176"
.Zoom = False
.FitToPagesTall = False
.FitToPagesWide = 1
End With
Dim ws     As Worksheet
Set ws = ActiveSheet
ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strDruckeAngebot, _
Quality:=xlQualityStandard, IncludeDocProperties:=True,  _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
End Sub

Anzeige
AW: vllt. so: Dim rngDateiName As String
15.04.2021 12:57:29
Eisi
Hallo JoWE,
das ist für mich schon mal ein riesen Sprung. Vielen herzlichen Dank.
Seltsamerweise wird jetzt zwar der Dateiname so erzeugt wie gewünscht, aber der steht dann auf jeder PDF-Seite links oben in B4.
Den Dateinamen in die PDF schreiben soll er nicht. Der Name steht einmal in der Zelle B4 aus Seite 1 und da soll er auch bleiben.
Wie kann man das verhindern?
VG Eisi :-)
AW: vllt. so: Dim rngDateiName As String
15.04.2021 13:59:18
JoWE
diesen Teil des Codes ersetzen:
     With ActiveSheet.PageSetup
.Orientation = xlPortrait
.PrintArea = "$B$3:$I$176"
         .PrintTitleRows = ""
.PrintTitleColumns = ""
.Zoom = False
.FitToPagesTall = False
.FitToPagesWide = 1
End With

Gruß
Jochen
Anzeige
AW: vllt. so: Dim rngDateiName As String
15.04.2021 14:39:35
Eisi
Hallo Jochen,
vielen herzlichen Dank. Jetzt ist alles optimal eingestellt.
Vielen herzlichen Dank. :-)
Du kannst Dir nicht vorstellen, wieviel Stunden ich für das Problem schon verbraten habe. Unfassbar.
GLG Eisi :-)
AW: Gerne, danke für die Rückmeldung
15.04.2021 14:51:21
JoWE
AW: Datei zum Problem : Hilfe: PDF drucken
15.04.2021 15:49:30
fcs
Hallo Sascha,
da waren doch zahlreiche kleine aber in der Summe dann doch katastrophale Fehler in deinem Makro.
Die meisten betrafen die korrekte Syntax für Pfade und Dateinamen.
Ich hab das Makro angepasst, bis es funktionierte - ich habe zahlreiche Kommentare eingefügt.
Beachte bitte auch die Informationen in der Textdatei.
https://www.herber.de/bbs/user/145551.zip
LG
Franz
Anzeige
AW: Datei zum Problem : Hilfe: PDF drucken
15.04.2021 17:24:20
Eisi
Hallo Franz,
herzlichen Dank für Deine Hilfe. Werde ich mir genau anschauen und hoffentlich dazu lernen.
Ist alles nicht so einfach.
GLG Eisi :-)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige