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

Forumthread: kann pdf über vba nicht öffnen

kann pdf über vba nicht öffnen
Claudia
Hallo guten Morgen liebe Helfer/innen,
ich habe ein kleines Programm welches seit Jahren funktionierte (bis Excel 2003)
Jetzt habe ich das ganze in 2007 und höher umgearbeitet mit einem eigenen Ribbon. In diesem Ribben ist ein Button der ein im gleichen Ordner abgelegtes pdf-Dokument aufrufen soll. Früher funzte das reibungslos, JETZT LEIDER NICHT MEHR.
Hier der Code:
Private Sub termine(control As IRibbonControl)
'Eine beliebige Datei öffnen...
Dim Pfad As String
'Einfach den Pfad ändern und das war's....
Pfad = ActiveWorkbook.Path & "\UPLAN_Termine.pdf"
DateiÖffnen "open", Pfad, SW_MAXIMIZE
End Sub
Was muss bitte geändert werden damit ein pdf Dokument mittels VBA auf jeden Rechner der irgendein pdf-Reader hat geöffnet werden kann.
Bitte helft mir.
Danke im Voraus und Gruß
Claudia
Anzeige
Wo ist der Code zu SUB DATEIÖFFNEN() ? _oT
18.11.2011 11:27:10
NoNet
_oT = "ohne Text"
AW: Wo ist der Code zu SUB DATEIÖFFNEN() ? _oT
18.11.2011 11:45:47
Claudia
Hallo NoNet,
hier der Code aus dem gesamten Modul, es wird noch eine weitere pdf-Datei geöffnet auf einem anderen Butto.
Public 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 Long) As Long
Public hWnd As Long
Public Const SW_HIDE = 0 ' Versteckt öffnen
Public Const SW_MAXIMIZE = 3 ' Maximiert öffnen
Public Const SW_MINIMIZE = 6 ' Minimiert öffnen
Public Const SW_NORMAL = 1
Public Const SW_RESTORE = 9
Public Const SW_SHOWMAXIMIZED = 3
Public Const SW_SHOWMINIMIZED = 2
Public Const SW_SHOWMINNOACTIVE = 7
Public Const SW_SHOWNOACTIVATE = 4
Public Function DateiÖffnen(Aktion As String, Pfad As String, _
Ansicht As String) As Boolean
Call ShellExecute(hWnd, Aktion, Pfad, "", "", Ansicht)
End Function
Private Sub termine(control As IRibbonControl)
'Eine beliebige Datei öffnen...
Dim Pfad As String
'Einfach den Pfad ändern und das war's....
Pfad = ActiveWorkbook.Path & "\UPLAN_Termine.pdf"
DateiÖffnen "open", Pfad, SW_MAXIMIZE
End Sub
Private Sub Hilfe(control As IRibbonControl)
Sheets("Jan").Select
Range("A1").Select
Sheets("Antrag").visible = xlVeryHidden
Sheets("Einstellungen").visible = xlVeryHidden
Sheets("Gesamt").visible = xlVeryHidden
'Eine beliebige Datei öffnen...
Dim Pfad As String
'Einfach den Pfad ändern und das war's....
Pfad = ActiveWorkbook.Path & "\Bedienungsanleitung.pdf"
DateiÖffnen "open", Pfad, SW_MAXIMIZE
End Sub
Gruß
Claudia
Anzeige
AW: Wo ist der Code zu SUB DATEIÖFFNEN() ? _oT
18.11.2011 11:48:22
mumpel
So ähnlich wie mein Code, nur viel zu umständlich.
AW: kann pdf über vba nicht öffnen
18.11.2011 11:29:12
mumpel
Hallo!
1. Welche Fehlermeldung?
2. Lass mal den Backslash weg
3. Versuch auch mal folgenden Code (Pfad zum PDF-Reader anpassen)
Gruß, René
Korrektur
18.11.2011 11:30:41
mumpel
API-Code fehlt.
Anzeige
AW: Korrektur
18.11.2011 11:40:49
Claudia
Hallo Mumpel,
vielen Dank, aber was ist wenn ein Anwender NICHT Adobe bzw. nicht den Reader 9.0 hat. Es gibt ja mittlerweile mehrere pdf-Reader die verwendet werden.
Ich pers. habe sogar noch den Adobe PRO 7.0 in Verwendung.
Kannst Du weiterhelfen?
Danke und Gruß Claudia
AW: Korrektur
18.11.2011 11:46:25
mumpel
AW: Korrektur
18.11.2011 11:57:03
Claudia
Hallo Mumpel,
funktioniert leider nicht (habe selbstverständlich den Namen der pdf-Datei geändert).
Hast Du noch eine Idee?
Gruß Claudia
Anzeige
AW: Korrektur
18.11.2011 11:59:34
mumpel
Dann nenne mal die Fehlermeldung. Hast Du es mal ohne Blacklsash versucht?
ActiveWorkbook.Path & "Hinweis_ExportAsPDF.pdf"color>
AW: Korrektur
18.11.2011 12:00:42
mumpel
Backslash muss es heissen. ;-)
AW: Korrektur
18.11.2011 12:00:48
mumpel
Backslash muss es heissen. ;-)
Anzeige
AW: Korrektur.. so gehts plötzlich auch
18.11.2011 13:56:27
Claudia
Hallo Mumpel,
keine Ahnung warum, aber jetzt gehts auch plötzlich ohne Probleme mit diesem kleinen Prog.
Private Sub termine(control As IRibbonControl) 'OeffnePDF()
Dim Datei As String
Datei = ActiveWorkbook.Path & "\UPLAN_Termine.pdf"
ActiveWorkbook.FollowHyperlink Datei
End Sub
Danke aber für Deine Hilfe
Gruß
Claudia
Anzeige
;

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-Dateien über VBA in Excel öffnen


Schritt-für-Schritt-Anleitung

Um eine PDF-Datei über VBA in Excel zu öffnen, kannst du den folgenden Code verwenden. Dieser Ansatz funktioniert sowohl in Excel 2007 als auch in neueren Versionen.

  1. Öffne den VBA-Editor: Drücke ALT + F11.
  2. Füge ein neues Modul hinzu: Klicke auf Einfügen > Modul.
  3. Füge folgenden Code ein:
Public 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 Long) As Long

Public Function DateiÖffnen(Aktion As String, Pfad As String, _
Ansicht As String) As Boolean
    Call ShellExecute(0, Aktion, Pfad, "", "", Ansicht)
End Function

Private Sub termine(control As IRibbonControl)
    Dim Pfad As String
    Pfad = ActiveWorkbook.Path & "\UPLAN_Termine.pdf"
    DateiÖffnen "open", Pfad, 1
End Sub
  1. Teste den Code: Führe die termine-Subroutine aus, um die PDF-Datei zu öffnen.

Häufige Fehler und Lösungen

  • Fehlermeldung: "Kann PDF nicht öffnen": Überprüfe den Pfad zur PDF-Datei. Stelle sicher, dass die Datei im angegebenen Verzeichnis vorhanden ist.
  • Backslash-Problematik: Achte darauf, dass der Backslash (\) korrekt verwendet wird. Manchmal kann das Fehlen des Backslashes zu Problemen führen, also verwende ActiveWorkbook.Path & "\DeineDatei.pdf".
  • PDF-Reader nicht installiert: Stelle sicher, dass ein PDF-Reader auf deinem Computer installiert ist. Ansonsten kannst du die PDF-Datei nicht öffnen.

Alternative Methoden

Eine alternative Methode, um eine PDF-Datei über Excel VBA zu öffnen, ist die Verwendung des FollowHyperlink-Befehls. Hier ist ein Beispiel:

Private Sub termine(control As IRibbonControl)
    Dim Datei As String
    Datei = ActiveWorkbook.Path & "\UPLAN_Termine.pdf"
    ActiveWorkbook.FollowHyperlink Datei
End Sub

Diese Methode ist einfacher, da sie keinen API-Aufruf erfordert.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du verschiedene PDF-Dateien über VBA öffnen kannst:

  1. Öffne eine spezifische PDF-Datei:
Private Sub Hilfe(control As IRibbonControl)
    Dim Pfad As String
    Pfad = ActiveWorkbook.Path & "\Bedienungsanleitung.pdf"
    DateiÖffnen "open", Pfad, 1
End Sub
  1. Öffne mehrere PDF-Dateien:
Sub ÖffneMehrerePDFs()
    Dim PDFs As Variant
    PDFs = Array("UPLAN_Termine.pdf", "Bedienungsanleitung.pdf")
    Dim i As Integer
    For i = LBound(PDFs) To UBound(PDFs)
        DateiÖffnen "open", ActiveWorkbook.Path & "\" & PDFs(i), 1
    Next i
End Sub

Tipps für Profis

  • Fehlerbehandlung einfügen: Füge eine Fehlerbehandlung in deinen Code ein, um unerwartete Fehler besser zu handhaben.
On Error GoTo FehlerHandler
' Dein Code hier
Exit Sub

FehlerHandler:
MsgBox "Fehler beim Öffnen der Datei: " & Err.Description
  • PDF-Dateien überschreiben, wenn geöffnet: Wenn du sicherstellen möchtest, dass eine Datei überschrieben wird, während sie geöffnet ist, implementiere eine Funktion, die die Datei zuerst schließt, bevor sie erneut geöffnet wird.

FAQ: Häufige Fragen

1. Warum kann ich plötzlich keine PDF-Dateien mehr öffnen?
Das kann an einem Update oder einer Änderung in den Einstellungen deines PDF-Readers liegen. Überprüfe die Standardanwendung für PDF-Dateien.

2. Wie kann ich eine PDF-Datei öffnen, ohne den Pfad manuell anzugeben?
Du kannst den Pfad dynamisch generieren, indem du ActiveWorkbook.Path verwendest, um den Ordner des aktuellen Excel-Dokuments zu ermitteln.

3. Kann ich auch andere Dateiformate über VBA öffnen?
Ja, du kannst VBA verwenden, um viele verschiedene Dateiformate zu öffnen, indem du den entsprechenden Befehl 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