Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1492to1496
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 unter Zelleninhaltsnamen drucken.

PDF unter Zelleninhaltsnamen drucken.
20.05.2016 15:54:03
Winfried
Gruess Gott miteinander,
eine einfache Aufgabe raubt mir den Nerv. In Excel 2003 kann ich leicht über das
Makro:

Sub Druck_auf_PDF()
' Drucken_auf_PDF Makro
Application.ActivePrinter = "Adobe PDF auf Ne15:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"Adobe PDF auf Ne15:", Collate:=True
End Sub

meine Arbeitsmappe ausdrucken. Allerdings muss ich immer den Dateinamen des PDF`s
manuell eingeben. Sonst würde immer unter dem Dateinamen als PDF gespeichert.
Wie müsste das VBA umgeschrieben werden um den Zellinhalt, z.B. von A1 automatisch
als Dateinamen zu übernehmen?
Im WWW kursieren Ideen die Datei zunächst unter dem gewünschten Namen abzuspeichern
und dann das PDF auszudrucken. Natürlich ginge das, aber das wäre immer noch keine
wirklich gute Lösung da ja die vielen neuen Excel-Dateien wieder gelöscht werden
müssen.
Über Lösungsvorschläge würde ich mich sehr sehr freuen!
Vielen lieben Dank vorab
Winfried

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

Betreff
Datum
Anwender
Anzeige
AW: PDF unter Zelleninhaltsnamen drucken.
20.05.2016 16:01:18
UweD
Hallo
Man kann die Exportfunktion von Office nutzen

Sub Makro2()
Dim Dateiname As String
Dateiname = ActiveSheet.Range("A1") & ".pfd"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=Dateiname, OpenAfterPublish:=True 'oder false
End Sub

Gruß UweD

AW: PDF unter Zelleninhaltsnamen drucken.
20.05.2016 16:34:22
Winfried
Vielen Dank Uwe für die schnelle Antwort,
leider hat Excel 2003 diese Exportfunktion nicht. Es erscheint der Fehlercode "Laufzeitfehler 438"
"Objekt unterstützt diese Eigenschaft oder Methode nicht"
Ansonsten wäre das kurze VBA sicherlich optimal. Momentan suche ich parallel nach der Möglichkeit
diese Exportfunktion in Excel 2003 nachzurüsten. Aber da gibt es wohl kein Patch für. Leider.
Vielen Dank dennoch!
Winfried

Anzeige
AW: PDF unter Zelleninhaltsnamen drucken.
20.05.2016 19:36:23
Winfried
Hier im Forum hat Boris folgendes VBA gepostet:
Sub AB_drucken()
ActiveWorkbook.Save
Pfad = "C:\Rechnungen Harry"
Datei = Sheets("Rechnung").Range("D1")
ThisWorkbook.SaveAs Pfad & "\" & Datei & ".xls"
ChDrive "C"
ChDir "C:\Rechnungen Harry\"
Dim sPrinter As String
Dim AB_Dateiname As String
AB_Dateiname = ActiveSheet.Range("D1").Value
Application.ScreenUpdating = False
sPrinter = Application.ActivePrinter
Application.ActivePrinter = "Adobe PDF auf Ne07:"
Drucker = Application.ActivePrinter
prtcmd = AB_Dateiname
Application.SendKeys (prtcmd), True
Application.SendKeys "{ENTER}", True
ActiveWindow.SelectedSheets.PrintOut ActivePrinter:=Drucker
Application.ActivePrinter = sPrinter
Application.ScreenUpdating = True
'MsgBox "Datei " & prtcmd & " erstellt!"
End Sub
Allerdings wird darüber erst die Excel-Datei mit dem gewünschten für das PDF als XLS abgespeichert und dann das PDF gedruckt. Vielleicht könnte man das Makro am Ende noch mit einer Löschfunktion die Excel-Datei löschen. Allerdings würde die Datei dann beim gewünschten speichern in einem ungewünschten Namen abgespeichert. Schwierig.
Hoffentlich gibt es eine Lösung.
Gruss
Winfried

Anzeige
Alternative Lösung über einen Zwischenschritt
20.05.2016 21:35:48
Zwenn
Hallo Winfried,
vor dem Problem PDF-Dateien unter dem richtigen Namen automatisiert abzuspeichern stand ich auch bereits. Zwar drucke ich aus dem Internet Explorer heraus und verwende dafür den PDF Creator, aber meine Lösung könnte für Dich auch funktionieren, sofern Du die Möglichkeit hast, Deine PDFs in ein "Hilfsverzeichnis" zu drucken.
Ich habe ein Verzeichnis "TempPDF" angelegt. In dieses drucke ich die PDFs unter dem Namen, auf den ich keinen Einfluss habe, weil er automatisch vom PDF Creator vergeben wird. Ich überwache dieses Verzeichnis aber während des Drucks und prüfe in einer Schleife ständig, ob mehr als 0 Dateien in dem Verzeichnis liegen. Sobald das PDF darin abgespeichert wird, stimmt die Abbruchbedingung der Schleife und sie wird verlassen. Danach verschiebe ich die PDF Datei dann einfach und benenne sie während dieses Vorgangs in den Namen um, den sie in echt haben soll.

strRohNamePDF = PDFsDrucken(Browser)
Name strRohNamePDF As strVerzeichnis & strSollNameSpeicherKonform & ".pdf"


Function PDFsDrucken(Browser As Object) As String
Dim fs As Object
Dim PDFsTempPfad As Object
Dim strPDFsTempPfad As String
Dim Datei As Object
Dim PDFsAnzahl As Long
Dim DateiName As String
PDFsAnzahl = 0
strPDFsTempPfad = ThisWorkbook.Path & "\PDFs temp\"
Set fs = CreateObject("scripting.FileSystemObject")
Set PDFsTempPfad = fs.getFolder(strPDFsTempPfad)
Browser.ExecWB 6, 2, Null, Null
Do
PDFsAnzahl = DateienInVerzeichnisZaehlen(strPDFsTempPfad)
Loop Until PDFsAnzahl > 0
For Each Datei In PDFsTempPfad.Files
DateiName = Datei.Name
Next Datei
Set Datei = Nothing
Set fs = Nothing
Set PDFsTempPfad = Nothing
PDFsDrucken = strPDFsTempPfad & DateiName
End Function


Function DateienInVerzeichnisZaehlen(strVerzeichnis As String) As Long
Dim objFso As Object
Dim lonAnzahlDateien As Long
Set objFso = CreateObject("Scripting.FileSystemObject")
lonAnzahlDateien = objFso.getFolder(strVerzeichnis).Files.Count
Set objFso = Nothing
DateienInVerzeichnisZaehlen = lonAnzahlDateien
End Function
Mit dieser Methode habe ich bereits ca. 1 Mio. PDFs so abgespeichert, wie ich sie brauche. Das Einzige, worauf Du achten musst ist, dass niemals mehr als eine Datei in dem Verzeichnis liegt. Entweder Du bist Dir dessen sicher, oder Du stellst es sicher, indem Du erst prüfst, ob das Verzeichnis leer ist. Falls nicht, verschiebe die vorhandenenen Dateien in ein Auffangverzeichnis.
Vielleicht hilft Dir das :-)
Viele Grüße,
Zwenn
Anzeige

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige