PDA

Vollständige Version anzeigen : Shellexecute öffnet keine pdfs


Luka$
19.11.2008, 08:29
Hallo,

habe in eine Excelsheet die Shellexecute Funktion ,wie hier im Forum häufig beschrieben, eingebunden. Bei mir läuft es einwandfrei. Bei demjenigen an den ich es weitergegeben habe können keine pdf Dateien geöffnet werden.

Hat hier jemand eine Idee?

Luka$

jinx
19.11.2008, 08:41
Moin, Luka$,

Adobe Reader ist dort installiert und als Anwendung fürs Öffnen von PDF hinterlegt?

Luka$
19.11.2008, 16:02
muss es denn der adobe reader sein oder ist der Hersteller egal?

Gebe ich in die Kommandozeile Start>Ausführen>cmd den Pfad + Dateinamen ein öffnet das Dokument!



Hier noch mal der Code:

1. Modul

'Deklaration der Funktion ShellExecute, zum öffnen von beliebigen Dokumenten
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal Hwnd As Long, ByVal Ipoperation As String, ByVal Ipfile As String, _
ByVal Ipparameters As String, ByVal Ipdirectory As String, ByVal nshowcmd As Long) As Long
'Deklaration der Funktion GetDesktopWindow, um das Windowhandle zu erhalten
Public Declare Function GetDesktopWindow Lib "user32" () As Long

Public Sub HyperlinkOeffnen(intSheet As Integer, strFile As String)
Dim strPfad As String
Dim strQualifiedPfad As String
Dim DeskWin As Long
On Error GoTo HyperlinkOeffnen_Error

strPfad = ActiveWorkbook.Path
strQualifiedPfad = strPfad & "\Ordner\" & intSheet & "\" & strFile
DeskWin = GetDesktopWindow()

If strFile <> "" Then
'ActiveWorkbook.FollowHyperlink strHyperlink
DoOpenFile = ShellExecute(DeskWin, "open", strQualifiedPfad, vbNullString, vbNullString, 1)
End If
Worksheets(CStr(intSheet)).Cells(9, 5).Value = ""

On Error GoTo 0
Exit Sub

HyperlinkOeffnen_Error:
MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure HyperlinkOeffnen of Modul modFunktion"
End Sub




2. Arbeitsblatt 2 (in Zelle 9,5 steht der Dateiname)


'Bei auswahl einer Referenz aus dem Kombinationfeld wird diese geöffnet
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 9 And Target.Column = 5 Then
If IsNull(Target.Value) Or Target.Value = "" Then
Else
Call HyperlinkOeffnen(2, Target.Value)
End If
End If
End Sub

Luka$
20.11.2008, 01:57
Könnte es vielleicht am Blattschutz liegen? Ich vermute so etwas kann es aber noch nicht belegen