Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: PDF Dokument per VBA öffnen

PDF Dokument per VBA öffnen
28.11.2022 16:46:13
grigri
Hallo,
bin grad mit meinem Latein am Ende. Ich versuche seit Stunden mit einem Makro von einem bestimmten Dateipfad eine PDF zu öffnen und bekomm das nicht hin.
Der Code sollte aber in jedem Fall passen da ich ihn von einem bereits vor Jahren erstellten VBA kopiert habe. Dort funzt er problemlos :-(
Hat jemand eine Idee was ich falsch mache?
Danke schon mal im Voraus

Private Sub open_pdf_Click()
Dim strDateiName As String
Dim strPathToAcroRead As String
strPathToAcroRead = "C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe"
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.InitialFileName = "O:\WNW\Kundendienst\Einsatzleitung\gescannte Probenbegleitscheine\" & ComboBox1 & ".pdf"
If .Show = -1 Then
strDateiName = .SelectedItems(1)
End If
End With
If strDateiName  "" Then
Shell strPathToAcroRead & " /N " & strDateiName
MsgBox "Dokument wird geöffnet" & vbCrLf & "Zum öffnen bitte klicken"
End If
Unload Me
End Sub
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: PDF Dokument per VBA öffnen
28.11.2022 17:51:02
Der
Hallo,
ggf. müsste der Dateiname samt Pfad in Anführungszeichen, wenn Leerezeichen im Pfad enthalten sind:

"""" & strDateiName & """"
Wenn aber der Acrobat Reader die Standard-Anwendung für PDF ist, müsste der direkte Aufruf der Datei reichen:

CreateObject("WScript.Shell").Run strDateiName

Anzeige
AW: PDF Dokument per VBA öffnen
28.11.2022 17:53:52
Der
Das mit den Anführungszeichen gilt natürlich auch für meine Lösung:

CreateObject("WScript.Shell").Run """" & strDateiName & """"

AW: PDF Dokument per VBA öffnen
29.11.2022 07:04:22
grigri
Servus,
habe deinen Vorschlag getestet, aber irgendwie scheine ich was falsch zu machen.
Wie gesagt, den Codeschnipsel habe ich aus einem meiner früheren Projekte raus kopiert. In dem anderen Dokument wird der Acrobat Reader auch geöffnet.
Die beiden Codes sind komplett ident (natürlich bis auf die Speicherpfade). Trotzdem wird der Acrobat nicht angesprochen
Oben ist der neue Code, unten der alte

Private Sub open_pdf_Click()
Dim strDateiName As String
Dim strPathToAcroRead As String
strPathToAcroRead = "C:\Program Files (x86)\Adobe\Acrobat Reader 10.0\Reader\AcroRd32.exe"
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.InitialFileName = "O:\WNW\Kundendienst\Einsatzleitung\gescannte Probenbegleitscheine\" & ComboBox1  & ".pdf"
If .Show = -1 Then
strDateiName = .SelectedItems(1)
End If
End With
If strDateiName  "" Then
Shell strPathToAcroRead & " /N " & strDateiName
MsgBox "Dokument wird geöffnet" & vbCrLf & "Zum öffnen bitte klicken"
End If
Unload Me
End Sub
Private Sub cmd_openpdf_Click()
Dim strDateiName As String
Dim strPathToAcroRead As String
strPathToAcroRead = "C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe"
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.InitialFileName = "O:\Rücksendungen\Rechnungen\" & GoToBox & ".pdf"
If .Show = -1 Then
strDateiName = .SelectedItems(1)
End If
End With
If strDateiName  "" Then
Shell strPathToAcroRead & " /N " & strDateiName
MsgBox "PDF-File is being opened." & vbCrLf & "Please click OK to continue after reading."
End If
Unload Me
End Sub

Anzeige
AW: PDF Dokument per VBA öffnen
29.11.2022 08:58:37
Oberschlumpf
Hi
du verwendest...

Shell strPathToA...usw
...ein Vorschlag ist...

CreateObject("WScript.Shell").Run """" & strDa...usw
...du schreibst: "habe deinen Vorschlag getestet...usw"
Ich frage: Und wo, in deinem neu gezeigten Code, erscheint der Code(vorschlag), den du getestet hast?
Hier von mir eine Idee, die erst mal nur zum Ausprobieren da ist, ob es mit WScript grundsätzlich funktioniert:

Sub test
Dim objShell As Object
Set objShell = CreateObject("WScript.Shell")
'   objShell.Run Chr(34) & "O:\WNW\Kundendienst\Einsatzleitung\gescannte Probenbegleitscheine\DATEINAME.pdf" & Chr(34), 1
objShell.Run Chr(34) & "O:\WNW\Kundendienst\Einsatzleitung\gescannte Probenbegleitscheine\" & ComboBox1  & ".pdf" & Chr(34), 1
Set objShell = Nothing
End Sub
Wenn das mit ComboBox1 noch immer nicht funktioniert, lösch mal die Zeile mit ComboBox1 und verwende die Zeile darüber - ersetz aber natürlich DATEINAME durch einen gültigen Dateinamen.
Hilfts?
Den von mir gezeigten Code verwende ich zum Öffnen aller PDF-Dateien, die in meiner Excel-Datei zur Verfügung stehen mit dem von mir als Standard markierten PDF-Viewer.
Ich nutze nicht Acrobat Reader, ich nutze Foxit PDF Reader.
Ciao
Thorsten
Anzeige
AW: PDF Dokument per VBA öffnen
29.11.2022 10:39:13
grigri
Servus,
momentan weiß ich gar nicht mehr was ich alles probiert habe.
Wie schon gesagt, in dem "alten" Dokument funktioniert der Code den ich mit Copy/Paste in das neue Dokument übernommen habe. Lediglich der Dateipfad wurde angepasst.
Leider ist es aber auch so das meine eigentliche Arbeit liegen geblieben ist und ich das schleunigst nachholen muss bevor mir das über den Kopf wächst.
Ich glaub ich werde das auf einen anderen Tag verschieben. Vielleicht löst sich der Knoten in meinem Kopf bis dahin.
Bis jetzt habe ich noch keine Lösung gefunden.
Danke trotzdem für eure Hilfe
lg
Cris
Anzeige
AW: PDF Dokument per VBA öffnen
29.11.2022 11:24:02
Der
Nochmal: Wenn der Pfad Leerzeichen beinhaltet, dann muss er in Anführungszeichen eingebettet werden. anscheinend ist das bei Dir der Fall. Also den Pfad samt Dateinamen um die Anführungszeichen ergänzen wie beschrieben.
Ansonsten können wir Dir nur helfen, wenn wir wissen was genau in den Variablen und den Steuerelementen steht ...
Anzeige
AW: PDF Dokument per VBA öffnen
29.11.2022 09:31:01
peterk
Hallo
Ist der Pfad zum Reader gültig? Füg folgende Codezeilen ein:

strPathToAcroRead = "C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe"
If Dir(strPathToAcroRead) = "" Then
MsgBox "Pfad nicht gefunden", , "strPathToAcroRead"
End If
Peter
Anzeige
AW: PDF Dokument per VBA öffnen
29.11.2022 15:18:00
grigri
Hallo an alle die da mitgeholfen haben,
bitte erschlagt mich nicht. Es war ein dummer Flüchtigkeitsfehler (Tippfehler) bei der Ansprache des Steuerelements. Dieses Element habe ich versehentlich cnd_openpfd genannt. Somit konnte der Code gar nicht ausgeführt werden.
Die letzten Stunden der Fehlersuche waren komplett überflüssig.
lg
Cris
Anzeige
AW: PDF Dokument per VBA öffnen
29.11.2022 16:08:28
Oberschlumpf
Hi,
SOWAS kannst auch du verhindern.
Lies dir mal alles durch, was du zum Befehl...

Option Explicit
...findest - und wende den Befehl auch an
Ciao
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

PDF Dokument per VBA öffnen


Schritt-für-Schritt-Anleitung

Um ein PDF-Dokument per VBA zu öffnen, befolge diese Schritte:

  1. Öffne den VBA-Editor. Drücke ALT + F11 in Excel.

  2. Füge ein neues Modul hinzu. Klicke auf Einfügen > Modul.

  3. Kopiere den folgenden Code in das Modul:

    Private Sub open_pdf_Click()
       Dim strDateiName As String
       Dim strPathToAcroRead As String
       strPathToAcroRead = "C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe"
    
       With Application.FileDialog(msoFileDialogOpen)
           .AllowMultiSelect = False
           .InitialFileName = "O:\WNW\Kundendienst\Einsatzleitung\gescannte Probenbegleitscheine\" & ComboBox1 & ".pdf"
           If .Show = -1 Then
               strDateiName = .SelectedItems(1)
           End If
       End With
    
       If strDateiName <> "" Then
           Shell strPathToAcroRead & " /N " & strDateiName
           MsgBox "Dokument wird geöffnet. Bitte klicken Sie auf OK."
       End If
    
       Unload Me
    End Sub
  4. Stelle sicher, dass der Pfad zu Adobe Reader korrekt ist. Wenn Leerzeichen im Pfad sind, füge Anführungszeichen hinzu:

    Shell """" & strPathToAcroRead & """ /N """ & strDateiName & """"
  5. Teste den Code und passe ihn an, falls notwendig.


Häufige Fehler und Lösungen

  • Fehler: PDF öffnet sich nicht.

    • Lösung: Überprüfe den Pfad zu Adobe Reader. Benutze den Code:
    If Dir(strPathToAcroRead) = "" Then
        MsgBox "Pfad nicht gefunden", , "strPathToAcroRead"
    End If
  • Fehler: Acrobat Reader reagiert nicht.

    • Lösung: Stelle sicher, dass der Acrobat Reader als Standardanwendung für PDFs eingestellt ist. Verwende CreateObject("WScript.Shell").Run als Alternative.

Alternative Methoden

Eine weitere Methode, um eine PDF-Datei zu öffnen, ist die Verwendung von CreateObject:

CreateObject("WScript.Shell").Run """" & strDateiName & """"

Diese Methode ist besonders nützlich, wenn der Acrobat Reader bereits als Standardanwendung für .pdf-Dateien konfiguriert ist.


Praktische Beispiele

  1. Direktes Öffnen eines PDF-Dokuments:

    Sub OpenPDF()
       Dim objShell As Object
       Set objShell = CreateObject("WScript.Shell")
       objShell.Run "O:\WNW\Kundendienst\Einsatzleitung\gescannte Probenbegleitscheine\Beispiel.pdf", 1
       Set objShell = Nothing
    End Sub
  2. Daten aus PDF in Excel einlesen (fortgeschritten):

    • Benutze spezialisierte Tools oder Bibliotheken, um Daten aus einer PDF-Datei in Excel zu importieren, da VBA hierfür keine native Unterstützung bietet.

Tipps für Profis

  • Verwende Option Explicit zu Beginn deiner Module, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Tippfehler zu vermeiden.
  • Teste den Code regelmäßig, um sicherzustellen, dass Änderungen keine neuen Fehler einführen.
  • Berücksichtige die Verwendung von Fehlerbehandlungsroutinen, um unerwartete Probleme elegant zu handhaben.

FAQ: Häufige Fragen

1. Kann ich auch andere PDF-Viewer verwenden? Ja, du kannst den Pfad zu einem anderen PDF-Viewer anpassen, solange du den richtigen Pfad angibst.

2. Wie kann ich sicherstellen, dass der Code funktioniert? Teste den Code in einer leeren Excel-Datei und stelle sicher, dass der Pfad zu den PDF-Dateien korrekt ist.

3. Was mache ich, wenn ich mehrere PDF-Dateien öffnen möchte? Du kannst eine Schleife verwenden, um durch eine Liste von PDF-Dateien zu iterieren und jede einzeln zu öffnen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige