ich habe mehrere (50+) Dateien in einem Ordner liegen und moechte alle in einzelne PDF-Dateien abspeichern. HAt da jemand eine Loesung fuer mich?
Vielen Dank fuer Eure Hilfe!
VG Philipp
Option Explicit
Option Compare Text
Private lRowCounter As Long
Private oSheet As Object
Const sRootPath As String = "D:\xxx" '* Pfad bitte anpassen ohne "\" am Ende!!!
Sub DateienAusVerzeichnis_Auflisten()
Dim sWorkBookName$, vFile As Variant, sPath$, iLastRow%, iRowsCount%, sFileName$
On Error GoTo ende
Application.EnableEvents = False
Application.ScreenUpdating = False
Sheets.Add
ActiveSheet.Name = "TabelleZwi"
Set oSheet = Sheets("TabelleZwi")
oSheet.Activate
oSheet.Cells(1, 1).Select
lRowCounter = 1
Call ReadFolder(sRootPath)
iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
For iRowsCount = 1 To iLastRow
sFileName = Cells(iRowsCount, 1).Value
sFileName = sRootPath & "\" & sFileName
Workbooks.Open sFileName
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
sFileName & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
ActiveWorkbook.Close savechanges:=False
Next
Application.DisplayAlerts = False
oSheet.Delete
Application.DisplayAlerts = True
ende:
Set oSheet = Nothing
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
Sub ReadFolder(ByVal sPath As String)
Dim oFSO As Object, oFolder As Object, oFile As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.getfolder(sPath)
With oSheet
'* Alle Dateien/Files auflisten
For Each oFile In oFolder.Files
If VBA.Left(oFile.Name, 1) "~" Then .Cells(lRowCounter, 1) = oFile.Name
lRowCounter = lRowCounter + 1
Next oFile
End With
Set oFSO = Nothing
Set oFile = Nothing
Set oFolder = Nothing
End Sub
Nicht vergessen, den Pfad, ganz oben ("D:\xxx"), anpassen!!!Um mehrere Excel-Dateien in PDF umzuwandeln, kannst Du ein einfaches VBA-Skript verwenden. Folge diesen Schritten:
Öffne Excel und drücke ALT + F11
, um den VBA-Editor zu öffnen.
Füge ein neues Modul hinzu:
Einfügen
und wähle Modul
.Kopiere den folgenden Code in das Modul:
Option Explicit
Option Compare Text
Private lRowCounter As Long
Private oSheet As Object
Const sRootPath As String = "D:\xxx" '* Pfad bitte anpassen ohne "\" am Ende!!!
Sub DateienAusVerzeichnis_Auflisten()
Dim sFileName$
On Error GoTo ende
Application.EnableEvents = False
Application.ScreenUpdating = False
Sheets.Add
ActiveSheet.Name = "TabelleZwi"
Set oSheet = Sheets("TabelleZwi")
oSheet.Activate
lRowCounter = 1
Call ReadFolder(sRootPath)
For iRowsCount = 1 To lRowCounter - 1
sFileName = oSheet.Cells(iRowsCount, 1).Value
Workbooks.Open sRootPath & "\" & sFileName
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
sRootPath & "\" & sFileName & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
ActiveWorkbook.Close savechanges:=False
Next
Application.DisplayAlerts = False
oSheet.Delete
Application.DisplayAlerts = True
ende:
Set oSheet = Nothing
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
Sub ReadFolder(ByVal sPath As String)
Dim oFSO As Object, oFolder As Object, oFile As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.getfolder(sPath)
With oSheet
For Each oFile In oFolder.Files
If VBA.Left(oFile.Name, 1) <> "~" Then .Cells(lRowCounter, 1) = oFile.Name
lRowCounter = lRowCounter + 1
Next oFile
End With
End Sub
Passe den Pfad (sRootPath
) im Code an, damit er auf den Ordner zeigt, in dem Deine Excel-Dateien gespeichert sind.
Führe das Skript aus, indem Du F5
drückst oder im Menü Ausführen
wählst.
Das Skript wird alle Excel-Dateien im angegebenen Ordner öffnen und sie als PDF speichern.
Fehler: "Dateipfad nicht gefunden"
Fehler: "Datei kann nicht geöffnet werden"
Fehler: "VBA-Fehler"
Falls Du kein VBA verwenden möchtest, gibt es auch andere Möglichkeiten, mehrere Dateien in eine PDF umzuwandeln:
Excel-Funktion "Drucken":
Strg + P
und wähle "Microsoft Print to PDF". Drittanbieter-Software:
Nehmen wir an, Du hast einen Ordner mit 50 Excel-Dateien. Mit dem oben genannten VBA-Skript kannst Du diese Dateien in einem Rutsch in PDF umwandeln.
Wenn Du eine Excel-Datei mit mehreren Reitern hast, kannst Du die Funktion ActiveWorkbook.ExportAsFixedFormat
anpassen, um nur bestimmte Reiter zu exportieren.
1. Wie kann ich mehrere Excel-Dateien in PDF umwandeln, ohne VBA zu verwenden?
Du kannst die integrierte Druckfunktion in Excel verwenden oder Software von Drittanbietern nutzen.
2. Ist es möglich, mehrere Excel-Tabellenblätter in einer PDF zu speichern?
Ja, Du kannst mehrere Tabellenblätter in einer Datei speichern, indem Du diese vorher auswählst und dann druckst.
3. Funktioniert das Skript in allen Excel-Versionen?
Das Skript sollte in Excel 2010 und neueren Versionen funktionieren. Achte darauf, dass du die Makros aktiviert hast.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen