Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: alle Dateien aus Ordner drucken

alle Dateien aus Ordner drucken
26.10.2008 10:40:00
Bruno
Guten Morgen zusammen
Aus einer Excelmappe möchte ich per VBA diverse PDFs, die zuvor mit Acrobat erstellt worden sind, zusammen drucken. Hier im Forum habe ich einen Code dazu gefunden, der sich jedoch nur auf eine einzelne Datei und nicht auf alle Dateien des Ordners bezieht. Nachstehend der entsprechende Teil des Codes für die Dateiauswahl:

Sub prcPrint_PDF()
Dim strPath As String, strShortPath As String, strFile As String
strFile = "Test.pdf"
strPath = "C:\Devis\Zeichnungen\"
strShortPath = Space(MAX_PATH)
GetShortPathName strPath & "\" & strFile, strShortPath, MAX_PATH
ShellExecute GetActiveWindow, "print", strShortPath, "", strPath, SW_HIDE
End Sub


Wie muss der Code für die Variante «alle Dateien drucken» lauten?
Für Eure Tipps besten Dank zum Voraus,
Bruno

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: alle Dateien aus Ordner drucken
26.10.2008 11:01:04
Tino
Hallo,
ungetestet.
Sub prcPrint_PDF()
    Dim strPath As String, strShortPath As String, strFile As String
    Dim FSO, F1
    
    strPath = "C:\Devis\Zeichnungen\"
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set FSO = FSO.Getfolder(strPath)
    
    For Each F1 In FSO.Files
        If CStr(F1) Like "*.pdf" Then
            strFile = CStr(F1)
            strShortPath = Space(MAX_PATH)
            GetShortPathName strPath & "\" & strFile, strShortPath, MAX_PATH
            ShellExecute GetActiveWindow, "print", strShortPath, "", strPath, SW_HIDE
        End If
    Next F1

End Sub


Gruß Tino

www.VBA-Excel.de


Anzeige
AW: alle Dateien aus Ordner drucken
26.10.2008 11:35:40
Bruno
Danke Tino für Deine prompte Antwort, leider regt sich aber mit dem erweiterten Code gar nichts, auch keine Fehlermeldung. Mit meinen bescheidenen VBA-Kenntnissen komme ich natürlich nicht weiter; eventuell findest Du aber den «Bremsschuh» doch noch.
Gruss, Bruno
AW: alle Dateien aus Ordner drucken
26.10.2008 11:56:49
Tino
Hallo,
ja ist auch klar strFile ist bereits der komplette Pfad + Datei.
Sub prcPrint_PDF()
    Dim strPath As String, strShortPath As String, strFile As String
    Dim FSO, F1
    
    strPath = "C:\Devis\Zeichnungen\"
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set FSO = FSO.Getfolder(strPath)
    
    For Each F1 In FSO.Files
        If CStr(F1) Like "*.pdf" Then
            strFile = CStr(F1)
            strShortPath = Space(MAX_PATH)
            GetShortPathName strFile, strShortPath, MAX_PATH
            ShellExecute GetActiveWindow, "print", strShortPath, "", strPath, SW_HIDE
        End If
    Next F1

End Sub


Gruß Tino

Anzeige
AW: alle Dateien aus Ordner drucken
26.10.2008 12:49:00
Bruno
Herzlichen Dank Tino für Deine Bemühungen, so klappt es jetzt wie gewünscht, super!!
Einen schönen Sonntag noch und beste Grüsse,
Bruno
Anzeige
Anzeige

Infobox / Tutorial

Alle Dateien aus einem Ordner drucken


Schritt-für-Schritt-Anleitung

Um alle Dateien aus einem Ordner zu drucken, benötigst du ein VBA-Skript. Hier ist eine Schritt-für-Schritt-Anleitung, die dir zeigt, wie du den Code anpassen kannst, um alle PDFs in einem bestimmten Ordner zu drucken:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.
  3. Kopiere den folgenden Code in das Modul:
Sub prcPrint_PDF()
    Dim strPath As String, strShortPath As String, strFile As String
    Dim FSO, F1

    strPath = "C:\Devis\Zeichnungen\" ' Passe den Pfad zu deinem Ordner an
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set FSO = FSO.Getfolder(strPath)

    For Each F1 In FSO.Files
        If CStr(F1) Like "*.pdf" Then
            strFile = CStr(F1)
            strShortPath = Space(MAX_PATH)
            GetShortPathName strFile, strShortPath, MAX_PATH
            ShellExecute GetActiveWindow, "print", strShortPath, "", strPath, SW_HIDE
        End If
    Next F1
End Sub
  1. Stelle sicher, dass der Pfad zu deinem Ordner korrekt ist.
  2. Schließe den VBA-Editor und führe das Makro aus, um alle PDF-Dateien aus deinem Ordner zu drucken.

Häufige Fehler und Lösungen

  • Fehler: Es passiert nichts beim Ausführen des Makros.

    • Lösung: Überprüfe den angegebenen Ordnerpfad. Stelle sicher, dass der Pfad korrekt ist und dass sich PDF-Dateien im Ordner befinden.
  • Fehler: Es wird eine Fehlermeldung angezeigt.

    • Lösung: Achte darauf, dass du die richtigen Berechtigungen zum Drucken hast und dass dein Drucker ordnungsgemäß angeschlossen ist.

Alternative Methoden

Wenn du keine VBA-Programmierung verwenden möchtest, kannst du auch eine Datei-Management-Software oder ein Batch-Skript in Windows nutzen, um alle Dateien aus einem Ordner zu drucken. Diese Tools bieten oft eine grafische Benutzeroberfläche, die das Drucken erleichtert.


Praktische Beispiele

  1. Drucken aus einem anderen Ordner: Ändere einfach den Pfad in der Zeile strPath = "C:\Devis\Zeichnungen\", um alle Dateien aus einem anderen Ordner zu drucken.

  2. Drucken von Dateien eines bestimmten Typs: Du kannst die Bedingung in der If-Anweisung anpassen, um z.B. nur .docx oder andere Dateitypen zu drucken.


Tipps für Profis

  • Wenn du regelmäßig alle Dateien aus einem Ordner drucken musst, könntest du das Makro anpassen, um auch ein Inhaltsverzeichnis des Ordners zu erstellen. Dies kann helfen, einen Überblick über die vorhandenen Dateien zu behalten.
  • Verwende die Funktion Dateiverzeichnis drucken, um eine Liste der Dateien in deinem Ordner zu erstellen, bevor du mit dem Drucken beginnst. Dies kann nützlich sein, um sicherzustellen, dass du alle benötigten Dokumente hast.

FAQ: Häufige Fragen

1. Frage: Kann ich auch andere Dateiformate drucken? Antwort: Ja, du kannst die Bedingung in der If-Anweisung anpassen, um andere Dateiformate zu berücksichtigen, wie z.B. *.docx.

2. Frage: Funktioniert dieser Code in allen Excel-Versionen? Antwort: Der VBA-Code sollte in den meisten modernen Excel-Versionen funktionieren, solange die VBA-Funktionalität aktiviert ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige