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

Forumthread: PDF Dateien mit VBA öffnen

PDF Dateien mit VBA öffnen
Gerhard
Hallo zusammen,
habe folgendes Problem:
Wie bekomme ich aus dem Unterpfad der aktuellen Exceldatei pdf Dateien geöffnet ?
'sucht in der Zeile von Range("B16")
' Inhalt von DateinameA ist "Lacke\DR-4070.pdf"
'Acrobat wird gestartet aber "AppActivate pdf als auch AppActivate Alle_D"
bringt Fehler "Ungültiger Prozeduraufruf oder ungültiges Argument! "
bei "pdf" wird komischerweise immer eine Nummer zur LW-Angabe vorangestellt.
Ist das der Fehler ?
Sub Oeffnen()
Dim Alle_D As String
Dim pfad
Dim xlAnw As Object, pdf
Range("B16").Select     'nur für Testbetrieb
zeileA = Selection.Row
DateinameA = Cells(zeileA, SpalteS_Daten)
pfad = MeinPfad
Alle_D = pfad + DateinameA
If pfad  "" Then
'    pdf = Shell("C:\Programme\Adobe\Acrobat 8.0\Reader\AcroRd32.exe" & pfad & DateinameA, 3)  ' _
Meldung !Datei nicht gefunden !
pdf = Shell("C:\Programme\Adobe\Reader 8.0\Reader\AcroRd32.exe", 3) & pfad & DateinameA  ' _
nur Acrobat läuft
'   AppActivate pdf
AppActivate Alle_D
End If
MsgBox ("Sicherheit steht noch nicht zur Verfügung !")
End Sub

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: PDF Dateien mit VBA öffnen
19.06.2012 18:06:20
fcs
Hallo Gerhard,
probiere mal folgendes.
Frage, wo kommen die Werte für die Variablen "MeinPfad" und "SpalteS_Daten" her?
Wenn diese leer bzw. 0 sind geht nichts!
Gruß
Franz
Sub Oeffnen()
Dim Alle_D As String
Dim pfad As String
Dim xlAnw As Object, pdf, ZeileA As Long
Range("B16").Select     'nur für Testbetrieb
ZeileA = Selection.Row
DateinameA = Cells(ZeileA, SpalteS_Daten)
pfad = MeinPfad
Alle_D = pfad & DateinameA
If pfad  "" Then
pdf = Shell("C:\Programme\Adobe\Acrobat 8.0\Reader\AcroRd32.exe """ & Alle_D & """", 3)
AppActivate Alle_D
End If
MsgBox ("Sicherheit steht noch nicht zur Verfügung !")
End Sub

Anzeige
AW: PDF Dateien mit VBA öffnen
Gerhard
Hallo Franz,
Danke für die Antwort
habe ich auch schon probiert sowie auch folgendes was als REM gekennzeichnet ist.
"MeinPfad" kommt aus ThisWorkbook.path + \ (Function MeinPfad)
"SpalteS_Daten" = Global Const SpalteS_Daten = 10 (Inhalt ist "Lacke\DR-4070.pdf")
der zusammengesetzte Pfad wird mir auch angezeigt in "pdf = ......."
manchmal mit "29120G:\....\.....\.... usw
Die vorangestellte Nummer vor der Laufwerkangabe irritiert mich
könnte auch Server sein
mfg gerhard
Anzeige
AW: PDF Dateien mit VBA öffnen
20.06.2012 15:29:21
fcs
Hallo Gerhard,
meine Shell-Anweisung funktioniert.
Ich hab sie bei mir nochmals infolgender Form mit Reader 10.0 getestet.
Wichtig: das Leerzeichen hinter ".exe" vor dem Dateinamen!!!

Wenn es dann nicht funktioniert, dann stimmt irgendetwas in der Pfad ermittlung nicht.
Ich weiss nicht, ob Shell auch mit Servernamen funktioniert oder nur mit verbundenen Laufwerken.
Gruß
Franz
Sub OeffnenPDF()
Dim pdfName As String, pdf As Variant
Dim Pfad As String
Pfad = ActiveWorkbook.Path & "\"
pdfName = Pfad & "Test A.pdf"
If Dir(pdfName)  "" Then
pdf = Shell("C:\Programme\Adobe\Reader 10.0\Reader\AcroRd32.exe """ & pdfName & """", 3)
Else
MsgBox "Datei: " & pdfName & vbLf & "konnte nicht gefunden werden"
End If
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
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 Dateien mit VBA öffnen


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.

  2. Neues Modul erstellen: Rechtsklicke im Projektfenster auf „VBAProject (DeineDatei.xlsx)“, wähle „Einfügen“ und dann „Modul“.

  3. VBA-Code eingeben: Kopiere den folgenden Code in das Modul:

    Sub OeffnenPDF()
        Dim pdfName As String, pdf As Variant
        Dim Pfad As String
        Pfad = ActiveWorkbook.Path & "\"
        pdfName = Pfad & "DeineDatei.pdf"  ' Ändere den Dateinamen entsprechend
        If Dir(pdfName) <> "" Then
            pdf = Shell("C:\Programme\Adobe\Reader 10.0\Reader\AcroRd32.exe """ & pdfName & """", 3)
        Else
            MsgBox "Die Datei: " & pdfName & vbLf & "konnte nicht gefunden werden"
        End If
    End Sub
  4. Parameter anpassen: Stelle sicher, dass der Pfad und der Dateiname korrekt sind. Der Pfad sollte auf die PDF-Datei verweisen, die du öffnen möchtest.

  5. Makro ausführen: Drücke F5, um das Makro auszuführen und die PDF-Datei zu öffnen.


Häufige Fehler und Lösungen

  • Fehler: "Datei nicht gefunden":

    • Überprüfe, ob der Pfad und der Dateiname korrekt sind. Achte darauf, dass der Dateiname die richtige Erweiterung hat (z.B. .pdf).
  • Fehler bei AppActivate:

    • Stelle sicher, dass der AppActivate-Befehl korrekt auf das Fenster verweist, das du aktivieren möchtest. Möglicherweise musst du den Fenstertitel anpassen.
  • Shell-Befehl funktioniert nicht:

    • Achte darauf, dass der Pfad zur Adobe Acrobat-Anwendung korrekt ist. Überprüfe die Installation von Adobe Acrobat Reader.

Alternative Methoden

  1. PDF mit Standardprogramm öffnen:

    Sub OeffnenMitStandardprogramm()
        Dim pdfName As String
        pdfName = ActiveWorkbook.Path & "\DeineDatei.pdf"
        If Dir(pdfName) <> "" Then
            Shell "cmd /c start """ & pdfName & """", vbHide
        Else
            MsgBox "Die Datei konnte nicht gefunden werden."
        End If
    End Sub
  2. PDF-Datei direkt in Excel einfügen:

    • Du kannst auch eine PDF-Datei in ein Excel-Arbeitsblatt einfügen, indem du die Funktion „Einfügen“ > „Objekt“ > „Aus Datei erstellen“ verwendest.

Praktische Beispiele

  • Beispiel 1: Öffnen einer PDF-Datei im Projektverzeichnis

    Sub OeffnenProjektPDF()
        Dim pdfName As String
        pdfName = ThisWorkbook.Path & "\Beispiel.pdf"
        If Dir(pdfName) <> "" Then
            Shell "C:\Programme\Adobe\Reader 10.0\Reader\AcroRd32.exe """ & pdfName & """", 3
        Else
            MsgBox "Die Datei Beispiel.pdf wurde nicht gefunden."
        End If
    End Sub
  • Beispiel 2: PDF-Datei drucken

    Sub PDFDrucken()
        Dim pdfName As String
        pdfName = ActiveWorkbook.Path & "\DruckBeispiel.pdf"
        If Dir(pdfName) <> "" Then
            Shell "C:\Programme\Adobe\Reader 10.0\Reader\AcroRd32.exe /t """ & pdfName & """", vbHide
        Else
            MsgBox "Die Datei konnte nicht gefunden werden."
        End If
    End Sub

Tipps für Profis

  • Verwende Workbook_Open: Du kannst den Code auch innerhalb der Workbook_Open-Prozedur platzieren, um die PDF-Datei automatisch beim Öffnen der Excel-Datei zu laden.

  • Fehlerbehandlung einfügen: Implementiere Fehlerbehandlungen, um unerwartete Probleme beim Öffnen der PDF-Dateien zu vermeiden.

  • Verwende Application.FollowHyperlink: Eine weitere Möglichkeit, eine PDF zu öffnen, besteht darin, die Methode FollowHyperlink zu nutzen.


FAQ: Häufige Fragen

1. Kann ich mehrere PDF-Dateien gleichzeitig öffnen?
Ja, du kannst eine Schleife verwenden, um durch eine Liste von PDF-Dateien zu iterieren und sie nacheinander zu öffnen.

2. Welches Programm wird zum Öffnen der PDF-Datei verwendet?
Standardmäßig wird Adobe Acrobat Reader verwendet, aber du kannst auch andere PDF-Reader angeben, solange der Pfad korrekt ist.

3. Funktioniert dieser VBA-Code mit allen Excel-Versionen?
Der Code sollte in den meisten Versionen von Excel funktionieren, einschließlich Excel 2010 und neuer. Achte darauf, dass du die Pfade und Versionen entsprechend anpasst.

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