Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

PDF-Datei über Makro öffnen

Forumthread: PDF-Datei über Makro öffnen

PDF-Datei über Makro öffnen
19.03.2005 21:02:49
Dieter.K
Hallo Forum,
ich benutze folgenden Code um PDF-Dateien über ein Label oder CommandButton aus meiner Excel-Datei heraus zu öffnen.

Private Sub LblInfo001_3_Click()
Dim sFile As String
sFile = Worksheets("Texte").Range("A1").Value & "\VAInfo 002_5.pdf"
If Dir(sFile) <> "" Then
ShellExecute GetActiveWindow, "Open", Worksheets("Texte").Range("A1").Value & "\VAInfo 002_5.pdf", "", "", SHOWMAXIMIZED
Else
frmPDF.Show
End If
End Sub

Das funktioniert einwandfrei. Bei folgendem Code habe ich nur den Dateinamen ausgetauscht (Datei ist auf jeden Fall in dem Verzeichnis vorhanden). Die Datei lässt sich über den Code nicht anzeigen!!

Private Sub LblInfo001_4_Click()
Dim sFile As String
sFile = Worksheets("Texte").Range("A1").Value & "\Va600.pdf"
If Dir(sFile) <> "" Then
ShellExecute GetActiveWindow, "Open", Worksheets("Texte").Range("A1").Value & "\Va600.pdf", "", "", SHOWMAXIMIZED
Else
frmPDF.Show
End If
End Sub

Zur Erstellung der PDF-Dateien benutze ich "gotomaxx".
Als Acrobat-Reader ist 7.0 im Einsatz.
Wenn ich die Dateien im Explorer über Doppelklick öffne, funktionieren beide.
Aus meiner Excel-Anwendung heraus aber nur die aus dem ersten Code.
(Die Datei aus dem ersten Code wurde vor Installation von Acrobat 7.0 erstellt, die Datei aus dem 2 Code danach).
Was mache ich falsch? Hat jemand einen Tipp oder eine Idee?
Gruß
Dieter.K
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: PDF-Datei über Makro öffnen
19.03.2005 21:10:29
Josef
Hallo Dieter!
Kann mich erinnern, das der letzte Parameter schon mal probleme gemacht hat!
Versuch mal statt "SHOWMAXIMIZED", den numerischen Wert 3 einzusetzten.
Gruß Sepp
P.S.: Rückmeldung nicht vergessen!


Anzeige
AW: PDF-Datei über Makro öffnen
19.03.2005 21:19:36
Dieter.K
Hallo Sepp,
das war es leider nicht. Ich vermute, das mein PDF-Mailer ("gotomaxx") die Dateien so komprimiert / erstellt, daß diese über den Excel-Code nicht mit Acrobat 7.0 geöffnet werden können.
Die funktionierenden Dateien, wurden vor der Installation von Acrobat 7.0 als PDF kreiert.
Ich müsste mal probehalber den Acrobat 7.0 deinstallieren (leider schließt sich mein Fenster aber immer automatisch, wenn ich über Systemsteuerung / Software versuche daran zu kommen (zur Info: Betriebssystem Win2000 SP4). Ich werde mal versuchen den Acrobat 7.0 anderweitig wieder loszuwerden.
Gruß
Dieter.K
Anzeige
AW: PDF-Datei über Makro öffnen
20.03.2005 02:14:34
Nepumuk
Hallo Dieter,
schau mal, ob es nicht an der nicht ganz sauber programmierten Funktion liegt. Die sollte eigentlich alles aufbekommen, was sich mit einem Doppelklick öffnen lässt.


Option Explicit
Private Declare Function GetShortPathName Lib "kernel32.dll" Alias "GetShortPathNameA" ( _
     ByVal lpszLongPath As String, _
     ByVal lpszShortPath As String, _
     ByVal cchBuffer As LongAs Long
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
     ByVal hwnd As Long, _
     ByVal lpOperation As String, _
     ByVal lpFile As String, _
     ByVal lpParameters As String, _
     ByVal lpDirectory As String, _
     ByVal nShowCmd As LongAs Long
Private Declare Function GetActiveWindow Lib "user32.dll" () As Long
Private Const MAX_PATH = 260&
Public Const SW_MAXIMIZE = 3&
Private Sub prcOpen_PDF()
    Dim strPath As String, strShortPath As String, strFile As String
    strFile = "bpl08827.pdf"
    strPath = Trim$(Worksheets("Texte").Cells(1, 1).Text) & "\"
    strShortPath = Space(MAX_PATH)
    GetShortPathName strPath & "\" & strFile, strShortPath, MAX_PATH
    ShellExecute GetActiveWindow, "open", strShortPath, "", strPath, SW_MAXIMIZE
End Sub


Gruß
Nepumuk
Anzeige
AW: PDF-Datei über Makro öffnen
20.03.2005 15:11:38
Dieter.K
Hallo Nepumuk,
erst einmal vielen Danke für Deine Hilfe zu so später Stunde (gilt natürlich auch für Beate). Dein Code läuft eigentlich einwandfrei.
Die Zeile "Public Const SW_MAXIMIZE = 3&" mußte ich in "Pivate Const SW_MAXIMIZE = 3&" ändern, da er sonst immer gemotzt hat.
Wenn ich Deinen Code in eine neue Datei einfüge, kann ich mit alle PDF-Dateien öffnen.
Füge ich den Code jedoch in meine "Problemmappe" ein, ist das Ergebnis das gleiche wie vorher. PDF-Dateien die vor Installation von Acrobat 7.0 erstellt wurden, öffnen einwandfrei, alle PDF-Dateien die nachher erstellt wurden öffnen sich nicht. Ich habe Acrobat 7.0 zwischenzeitlich deinstalliert und 6.0 aufgesetzt, leider ohne Erfolg. Problem besteht immer noch. Ich werde mir jetzt einmal irgendwelche PDF's downloaden um zu sehen was dann passiert. Ich werde das Gefühl nicht los, daß das mit meiner PDF-Software zusammenhängt ("gotomaxx").
Weitere Infos hierzu folgen.
Danke
Gruß
Dieter.K
Anzeige
AW: PDF-Datei über Makro öffnen
20.03.2005 21:58:51
Dieter.K
Hallo Nepumuk,
hier die versprochenen Info's:
Wenn ich Deinen Code in einer neue Datei einsetze, läuft alles einwandfrei.
Setze ich den Code in meine Datei, funktionieren nur die PDF's die vorher auch schon funktioniert haben (kann also doch nicht an meinem PDF-Creator "gotomaxx" liegen).
Ich lasse diese PDF-Spielerei erst einmal sein (es gibt wichtigeres in der Datei zu erledigen). Komme sicher später (in ein paar Tagen) noch mal auf dieses Problem zurück.
Gruß
Dieter.K
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

Infobox / Tutorial

PDF-Datei über Makro öffnen in Excel


Schritt-für-Schritt-Anleitung

Um eine PDF-Datei über ein Makro in Excel zu öffnen, kannst du den folgenden VBA-Code verwenden. Dieser Code nutzt die ShellExecute-Funktion, um PDF-Dateien direkt aus Excel zu öffnen.

  1. Öffne deine Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu (Einfügen > Modul).
  3. Kopiere und füge den folgenden Code in das Modul ein:
Private Sub LblInfo001_Click()
    Dim sFile As String
    sFile = Worksheets("Texte").Range("A1").Value & "\DeinePDFDatei.pdf"

    If Dir(sFile) <> "" Then
        ShellExecute GetActiveWindow, "Open", sFile, "", "", 1
    Else
        MsgBox "Die Datei existiert nicht."
    End If
End Sub
  1. Ersetze DeinePDFDatei.pdf mit dem tatsächlichen Namen der PDF-Datei.
  2. Stelle sicher, dass der Pfad in Zelle A1 korrekt ist.
  3. Füge einen Button oder ein Label hinzu, um das Makro auszulösen.

Häufige Fehler und Lösungen

  1. PDF-Datei öffnet sich nicht: Überprüfe, ob der Dateipfad in Zelle A1 korrekt ist. Achte darauf, dass keine Leerzeichen oder falschen Zeichen enthalten sind.

  2. Fehler beim Öffnen von neueren PDFs: Einige PDF-Dateien, die mit bestimmten Softwareversionen erstellt wurden, können Probleme beim Öffnen über ShellExecute verursachen. Versuche, den PDF-Reader zu aktualisieren oder eine andere Software zu verwenden.

  3. Parameter SHOWMAXIMIZED funktioniert nicht: Wenn du Probleme mit der Anzeige hast, ersetze SHOWMAXIMIZED durch den numerischen Wert 3, um die PDF maximiert zu öffnen.


Alternative Methoden

Falls du Schwierigkeiten mit ShellExecute hast, kannst du auch die FollowHyperlink-Methode verwenden:

Private Sub LblInfo001_Click()
    Dim sFile As String
    sFile = Worksheets("Texte").Range("A1").Value & "\DeinePDFDatei.pdf"

    If Dir(sFile) <> "" Then
        ThisWorkbook.FollowHyperlink sFile
    Else
        MsgBox "Die Datei existiert nicht."
    End If
End Sub

Diese Methode kann in vielen Fällen zuverlässiger sein, um PDF-Dateien zu öffnen.


Praktische Beispiele

Hier sind zwei praktische Beispiele, wie du den Code anpassen kannst:

  1. Öffnen einer spezifischen PDF-Datei:
sFile = "C:\Benutzer\DeinBenutzername\Dokumente\Beispiel.pdf"
  1. Öffnen einer PDF-Datei basierend auf einer Auswahl in Excel:
sFile = Worksheets("Texte").Cells(2, 1).Value & "\AusgewählteDatei.pdf"

Tipps für Profis

  • Vergewissere dich, dass die PDF-Dateien, die du öffnen möchtest, nicht durch Passwörter oder andere Sicherheitsmaßnahmen geschützt sind, da dies das Öffnen über Makros erschweren kann.
  • Du kannst auch mehrere PDF-Dateien in einer Schleife öffnen, indem du die Dateinamen in einer Liste speicherst und diese durchläufst.
  • Achte auf die Fehlerbehandlung im Code, um sicherzustellen, dass der Benutzer über Probleme informiert wird, falls eine Datei nicht geöffnet werden kann.

FAQ: Häufige Fragen

1. Was tun, wenn ich eine Fehlermeldung beim Öffnen einer PDF erhalte?
Überprüfe den Pfad und die Dateinamen auf richtige Schreibweise und korrekte Dateiendung.

2. Funktioniert der Code in allen Excel-Versionen?
Der VBA-Code sollte in den meisten Versionen von Excel funktionieren, jedoch können einige Funktionen je nach installierter Software leicht variieren.

3. Kann ich das Makro auch für andere Dateitypen verwenden?
Ja, der Code kann leicht angepasst werden, um andere Dateitypen wie DOCX oder XLSX zu öffnen, indem du den Dateinamen und die Endung änderst.

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