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

Forumthread: PDF Dateien drucken? VBA

PDF Dateien drucken? VBA
25.04.2005 17:07:19
Mathias
Hallo Excel Profis,
habe ein kleines Problem, könnt Ihr mir da weiterhelfen?
Ich wollte erreichen, das ich in einer Zelle angezeigt bekomme wie viele Dateien in dem Ordner D:\PDF sind, dann wieviele PDF Dateien in dem Ordner sind, und dann sollen alle PDF Dateien nacheinander auf den Standartdrucker gedruckt werden. und dann soll in einer weiteren Zelle geschrieben werden wieviele Dateien ausgedruckt wurden. Bis auf 2 Sachen funktioniert auch alles.
1. die Anzahl der gedruckten Dateien stimmt nicht, es werden immer alle Dateien gezählt und 2tens das ist viel wichtiger es wird nur die erste Datei und nicht die anderen gedruckt.
Wisst Ihr wo der Fehler liegt?
vielen Dank
Mathias

Private Sub CommandButton1_Click()
' PrintPDF
Dim sPath$, i%
MsgBox ("Bitte dein Pfad zum Acrobat Reader anpassen!" & vbLf & "zur acrord32.exe")
sPath = "D:\PDF\" 'Hier das Verzeichnis angeben wo die PDF Dateien liegen
With Application.FileSearch
.NewSearch
.LookIn = sPath
.Filename = "*.*"
.Execute
Range("B2").Value = .FoundFiles.Count
.NewSearch
.LookIn = sPath
.Filename = "*.pdf"
.Execute msoSortByFileName
Range("C2").Value = .FoundFiles.Count
For i = 1 To .FoundFiles.Count
Shell ("C:\Programme\Adobe\Acrobat 7.0\Reader\acrord32.exe /p /h " & _
.FoundFiles(i))
Cells(i + 1, 1).Value = .FoundFiles(i)
Range("D2").Value = i
Next i
End With
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: PDF Dateien drucken? VBA
25.04.2005 17:14:04
Ramses
Hallo
ungetestet aber probier mal

Private Sub CommandButton1_Click()
' PrintPDF
Dim sPath$, i%
MsgBox ("Bitte dein Pfad zum Acrobat Reader anpassen!" & vbLf & "zur acrord32.exe")
sPath = "D:\PDF\" 'Hier das Verzeichnis angeben wo die PDF Dateien liegen
With Application.FileSearch
.NewSearch
.LookIn = sPath
.Filename = "*.pdf"
.Execute
Range("B2").Value = .FoundFiles.Count
For i = 1 To .FoundFiles.Count
Shell ("C:\Programme\Adobe\Acrobat 7.0\Reader\acrord32.exe /p /h " & _
.FoundFiles(i))
Cells(i + 1, 1).Value = .FoundFiles(i)
Next i
Range("D2").Value = i
End With
End Sub

Gruss Rainer
Anzeige
AW: PDF Dateien drucken? VBA
25.04.2005 17:29:05
ANdreas
Hallo Mathias,
das Thema war vor kurzem hier:
https://www.herber.de/forum/archiv/596to600/t599226.htm
Es werden 3 Zahlenwerte berechnet wie gewünscht, einmal die Anzahl aller Dateien, dann aller PDF-Dateien und die Anzahl der gedruckten (erhöht sich im Schleifendurchlauf).
Hoffe das hilft weiter,
Andreas
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

PDF Dateien drucken mit VBA in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und erstelle eine neue Arbeitsmappe.

  2. Füge einen Button hinzu (Entwicklertools > Einfügen > Schaltfläche).

  3. Doppelklicke auf den Button, um den VBA-Editor zu öffnen.

  4. Füge den folgenden Code in das Codefenster ein:

    Private Sub CommandButton1_Click()
       ' PrintPDF
       Dim sPath As String, i As Integer
       MsgBox ("Bitte dein Pfad zum Acrobat Reader anpassen!" & vbLf & "zur acrord32.exe")
       sPath = "D:\PDF\" 'Hier das Verzeichnis angeben wo die PDF Dateien liegen
       With Application.FileSearch
           .NewSearch
           .LookIn = sPath
           .Filename = "*.pdf"
           .Execute
           Range("B2").Value = .FoundFiles.Count
           For i = 1 To .FoundFiles.Count
               Shell ("C:\Programme\Adobe\Acrobat 7.0\Reader\acrord32.exe /p /h " & _
               .FoundFiles(i))
               Cells(i + 1, 1).Value = .FoundFiles(i)
               Range("D2").Value = i
           Next i
       End With
    End Sub
  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Klicke auf den Button, um den Druckvorgang zu starten.

Dieser Code ermöglicht es Dir, mehrere PDF-Dateien aus einem bestimmten Ordner zu drucken, ohne die Dateien vorher zu öffnen. Stelle sicher, dass der Pfad zum Acrobat Reader korrekt ist.


Häufige Fehler und Lösungen

  • Fehler: Nur die erste PDF wird gedruckt.

    • Lösung: Überprüfe, ob der Druckbefehl korrekt im Schleifenblock platziert ist. Stelle sicher, dass die Schleife alle gefundenen Dateien durchläuft.
  • Fehler: Die Anzahl der gedruckten Dateien ist nicht korrekt.

    • Lösung: In der Zeile, die die Anzahl der gedruckten Dateien festlegt, sollte der Zähler innerhalb der Schleife aktualisiert werden.

Alternative Methoden

Wenn Du eine andere Möglichkeit suchst, PDF-Dateien zu drucken, kannst Du auch PowerShell verwenden. Hier ein einfaches Beispiel:

Get-ChildItem "D:\PDF\*.pdf" | ForEach-Object {
    Start-Process -FilePath $_.FullName -Verb Print
}

Diese Methode ermöglicht es, alle PDFs im angegebenen Ordner direkt zu drucken.


Praktische Beispiele

Hier ist ein Beispiel, wie Du die Anzahl der zu druckenden Dateien in einer Zelle anzeigen kannst, bevor Du mit dem Drucken beginnst:

Range("B2").Value = .FoundFiles.Count ' Anzahl der PDF-Dateien

Das ist besonders nützlich, um sicherzustellen, dass die richtigen Dateien gefunden wurden, bevor Du den Druckvorgang startest.


Tipps für Profis

  • Nutze Fehlerbehandlung in Deinem VBA-Code, um unerwartete Probleme zu vermeiden. Ein einfaches On Error Resume Next kann helfen, unerwartete Fehler zu ignorieren.
  • Überlege, ob Du die PDFs im Hintergrund drucken möchtest, um die Benutzeroberfläche nicht zu blockieren. Dies kann durch die Verwendung von Shell mit dem /h (hidden) Parameter erreicht werden.

FAQ: Häufige Fragen

1. Wie kann ich mehrere PDF-Dateien drucken? Du kannst den bereitgestellten VBA-Code verwenden, um alle PDF-Dateien in einem bestimmten Ordner nacheinander zu drucken.

2. Funktioniert dieser Code für alle Excel-Versionen? Der Code sollte in den meisten Versionen von Excel funktionieren, die VBA unterstützen, jedoch kann es Unterschiede in der Handhabung der FileSearch-Funktion geben.

3. Kann ich auch andere Dateitypen drucken? Ja, Du kannst den Dateifilter in der Filename-Eigenschaft anpassen, um andere Dateitypen zu drucken.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige