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

Tabellenblätter PDF-Datei Namen aus Zelle drucken

Tabellenblätter PDF-Datei Namen aus Zelle drucken
18.12.2017 08:21:54
obelix
Hallo,
die Tabellenblätter einer Arbeitsmappe mit ca. 500 Tabellenblättern sollen als PDF-Datei ausgedruckt werden.
Besonderheit: Die AUSGEWÄHLTEN Tabellenblätter sollen einzeln mit dem Dateinnamen aus Zelle Z5 des Tabellenblattes ausgedruckt werden und in einem Verzeichnis unter S:\Räume\aktuelles Datum gespeichert werden. Das Druckdatum kann ich von Hand im Makro anpassen.
Leider kann ich nicht in VBA programmieren, denke aber hier ist eine VBA-Lösung sinnvoll.
Gerne greife ich auf Eure Erfahrung zurück und bitte um Unterstützung.
Diese Aufgabe wird mindestens einmal pro Monat gestellt.
Für Eure Mühe und Unterstützung danke ich bereits jetzt.
Liebe Grüße
obelix

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblätter PDF-Datei Namen aus Zelle drucken
18.12.2017 11:45:34
Armin
Hallo,
wie möchtest Du denn die Tabellen auswählen. Am besten wäre natürlich eine Beispiel Version.
Denn wenn Du keine VBA kannst wäre das besser.
Gruß Armin
AW: Tabellenblätter PDF-Datei Namen aus Zelle drucken
18.12.2017 12:56:28
Jörg
Hallo Obelix,
lege Dir ein Register "Überblick" an und lasse das Makro "Registernamen_auslesen" laufen.
Dieses schreibt Dir in Spalte A Deine 500 Registernamen rein.
Dort löscht Du die nicht benötigten Register für Dein PDF Print. Die Liste muss fortlaufend sein, da bei der ersten Leerzelle abgebrochen wird. Zelle A1 ("Überblick") darf nicht gelöscht werden.
Der PDF Datei name setzt sich wie folgt zusammen:
Zellinhalt von Zelle E1 + Registername + Zellinhalt von Zelle E12
(Hier kannst Du das Datum o.ä. eingeben)
Speicherort wird in Zelle E3 eingegeben.
Zum Schluß Makro "Mail" starten.
Tipp: erst mit 2 oder 3 Namen in Spalte A testen
Ciao Jörg
Option Explicit
Dim Text_vorne As String
Dim Text_hinten As String
Dim Speicherort As String
Dim Registername As String
Dim Registername_neu As String
Dim FileName As String
Sub Registernamen_auslesen()
Dim lngWorksheets As Long
Dim i As Long
lngWorksheets = ThisWorkbook.Worksheets.Count
For i = 1 To lngWorksheets
ThisWorkbook.Sheets("Überblick").Cells(0 + i, 1).Value = ThisWorkbook.Worksheets(i).Name
Next i
End Sub
Sub Mail()
Sheets("Überblick").Select
Text_vorne = Range("E1").Value
Text_hinten = Range("E2").Value
Speicherort = Range("E3").Value & "\"
Range("A1").Select
Zeile1:
ActiveCell.Offset(1, 0).Select
If ActiveCell.Value = "" Then Exit Sub
Registername = ActiveCell.Value
Registername_neu = Text_vorne & Registername & Text_hinten & ".pdf"
Sheets(Registername).Select
RDB_Worksheet_Or_Worksheets_To_PDF
Sheets("Überblick").Select
GoTo Zeile1
End Sub
Sub RDB_Worksheet_Or_Worksheets_To_PDF()
'http://www.rondebruin.nl/win/s5/pdf.htm
If ActiveWindow.SelectedSheets.Count > 1 Then
MsgBox "There is more then one sheet selected," & vbNewLine & _
"be aware that every selected sheet will be published"
End If
'Call the function with the correct arguments
'Tip: You can also use Sheets("YourSheetName") instead of ActiveSheet in the code(sheet not  _
have to be active then)
FileName = RDB_Create_PDF(Source:=ActiveSheet, _
FixedFilePathName:=Speicherort & Registername_neu, _
OverwriteIfFileExist:=True, _
OpenPDFAfterPublish:=False)
End Sub
'The code below are used by the macros in the other two modules
'Do not change the code in the functions in this module
Function RDB_Create_PDF(Source As Object, FixedFilePathName As String, _
OverwriteIfFileExist As Boolean, OpenPDFAfterPublish As Boolean) As  _
String
Dim FileFormatstr As String
Dim Fname As Variant
'Test If the Microsoft Add-in is installed
If Dir(Environ("commonprogramfiles") & "\Microsoft Shared\OFFICE" _
& Format(Val(Application.Version), "00") & "\EXP_PDF.DLL")  "" Then
If FixedFilePathName = "" Then
'Open the GetSaveAsFilename dialog to enter a file name for the pdf
FileFormatstr = "PDF Files (*.pdf), *.pdf"
Fname = Application.GetSaveAsFilename("", filefilter:=FileFormatstr, _
Title:="Create PDF")
'If you cancel this dialog Exit the function
If Fname = False Then Exit Function
Else
Fname = FixedFilePathName
End If
'If OverwriteIfFileExist = False we test if the PDF
'already exist in the folder and Exit the function if that is True
If OverwriteIfFileExist = False Then
If Dir(Fname)  "" Then Exit Function
End If
'Now the file name is correct we Publish to PDF
On Error Resume Next
Source.ExportAsFixedFormat _
Type:=xlTypePDF, _
FileName:=Fname, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=OpenPDFAfterPublish
On Error GoTo 0
'If Publish is Ok the function will return the file name
If Dir(Fname)  "" Then RDB_Create_PDF = Fname
End If
End Function

Anzeige
AW: Tabellenblätter PDF-Datei Namen aus Zelle drucken
18.12.2017 19:48:59
obelix
Hallo Jörg und Armin,
vielen Dank für Eure Antworten.
Die Auswahl der Blätter kann ich durch die Angaben im Dateinamen aus Zelle Z5 nach dem Speichern erledigen. Kriterium ist das Datum als aktueller Bearbeitungsstand.
In Zelle Z6 möchte ich gerne den Speicherort eintragen. Dann ist die Dateiablage schon geklärt.
Die Beispieldatei habe ich hier hinterlegt:
https://www.herber.de/bbs/user/118404.xlsm
Vielleicht habt ihr beide die Möglichkeit die vorbeschriebene Änderung einzubauen?
Die Lösung von Jörg funktioniert, nur mit dem Speicherort komme ich nicht zurecht?!?
LG
obelix
Anzeige
AW: Tabellenblätter PDF-Datei Namen aus Zelle
18.12.2017 21:01:37
Jörg
Hallo Obelix,
der Speicherort wird erst definiert, wenn Du im entsprechenden Register bist, nicht vorher.
Ich habe das Makro entsprechend angepasst und den Namen von Mail auf PDF abgeändert (das Ursprungsmakro erzeugte PDF's und versendete diese, daher noch der Name).
Der Dateiname (=Verketten...) in A5 darf kein "/" enthalten, dieses Zeichen ist in einem Dateinamen nicht zulässig.
Ciao Jörg
Option Explicit
Dim Speicherort As String
Dim Registername As String
Dim Dateiname_neu As String
Dim FileName As String
Sub Registernamen_auslesen()
Dim lngWorksheets As Long
Dim i As Long
lngWorksheets = ThisWorkbook.Worksheets.Count
For i = 1 To lngWorksheets
ThisWorkbook.Sheets("Überblick").Cells(0 + i, 1).Value = ThisWorkbook.Worksheets(i).Name
Next i
End Sub
Sub PDF()
Sheets("Überblick").Select
Range("A1").Select
Zeile1:
ActiveCell.Offset(1, 0).Select
If ActiveCell.Value = "" Then Exit Sub
Registername = ActiveCell.Value
Sheets(Registername).Select
Speicherort = Range("Z6").Value & "\"
Dateiname_neu = Range("Z5").Value & ".pdf"
RDB_Worksheet_Or_Worksheets_To_PDF
Sheets("Überblick").Select
GoTo Zeile1
End Sub
Sub RDB_Worksheet_Or_Worksheets_To_PDF()
'http://www.rondebruin.nl/win/s5/pdf.htm
If ActiveWindow.SelectedSheets.Count > 1 Then
MsgBox "There is more then one sheet selected," & vbNewLine & _
"be aware that every selected sheet will be published"
End If
'Call the function with the correct arguments
'Tip: You can also use Sheets("YourSheetName") instead of ActiveSheet in the code(sheet not  _
_
have to be active then)
FileName = RDB_Create_PDF(Source:=ActiveSheet, _
FixedFilePathName:=Speicherort & Dateiname_neu, _
OverwriteIfFileExist:=True, _
OpenPDFAfterPublish:=False)
End Sub
'The code below are used by the macros in the other two modules
'Do not change the code in the functions in this module
Function RDB_Create_PDF(Source As Object, FixedFilePathName As String, _
OverwriteIfFileExist As Boolean, OpenPDFAfterPublish As Boolean) As _
String
Dim FileFormatstr As String
Dim Fname As Variant
'Test If the Microsoft Add-in is installed
If Dir(Environ("commonprogramfiles") & "\Microsoft Shared\OFFICE" _
& Format(Val(Application.Version), "00") & "\EXP_PDF.DLL")  "" Then
If FixedFilePathName = "" Then
'Open the GetSaveAsFilename dialog to enter a file name for the pdf
FileFormatstr = "PDF Files (*.pdf), *.pdf"
Fname = Application.GetSaveAsFilename("", filefilter:=FileFormatstr, _
Title:="Create PDF")
'If you cancel this dialog Exit the function
If Fname = False Then Exit Function
Else
Fname = FixedFilePathName
End If
'If OverwriteIfFileExist = False we test if the PDF
'already exist in the folder and Exit the function if that is True
If OverwriteIfFileExist = False Then
If Dir(Fname)  "" Then Exit Function
End If
'Now the file name is correct we Publish to PDF
On Error Resume Next
Source.ExportAsFixedFormat _
Type:=xlTypePDF, _
FileName:=Fname, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=OpenPDFAfterPublish
On Error GoTo 0
'If Publish is Ok the function will return the file name
If Dir(Fname)  "" Then RDB_Create_PDF = Fname
End If
End Function

Anzeige
AW: Tabellenblätter PDF-Datei Namen aus Zelle
18.12.2017 21:04:15
Jörg
Hinweis: Die zu speichernden Register sollten in Zelle A2 beginnen, bei Dir steht dort das Register Überblik.
AW: Tabellenblätter PDF-Datei Namen aus Zelle
19.12.2017 07:44:33
obelix
Hallo Jörg,
vielen Dank für Deine Unterstützung!
Auch der Hinweis auf Sonderzeichen im Dateinamen passt. Das habe ich komplett ausgeblendet gehabt.
Das Makro hat gerade den Testlauf fehlerfrei bestanden.
In den Tabellen habe ich zentral die Speicherdaten eingerichtet und die Tabellen greifen darauf zurück.
Bearbeitungshinweise habe ich in das Makro eingetragen und diese auch separat in der Arbeitsmappe hinterlegt. So kann jeder mit diesen Hinweisen diese Tabellen ausdrucken.
Ich bin begeistert.
Nochmal VIELEN DANK!
LG obelix
Anzeige
AW: Tabellenblätter PDF-Datei Namen aus Zelle
19.12.2017 08:28:04
Jörg
gern geschehen.

316 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige