A lire ce que tu écris je me dis que c'est le fait que
tu ais ""...Reader.exe"" & Fichier...
je pense qu'en mettant ""...Reader.exe "" & Fichier...
un espace est nécessaire entre le nom de ton executable et le fichier
que tu veux ouvrir
Sinon pour faire les choses jusqu'au bout
(et même si ce n'est pas la question),
le mieux serait d'utiliser le programme par défaut pour ouvrir le
document que tu veux ouvrir
il faut donc declarer la function :
Private Declare Function FindExecutable Lib "shell32.dll" _
Alias "FindExecutableA" (ByVal lpFile As String, _
ByVal lpDirectory As String, _
ByVal lpResult As String) As Long
écrire la fonction :
' -------------------------------------------------------------------
' -- Retrourne le chemin de l'executable (par défaut) désigné
' -- pour ouvrir le type de fichier passé en paramètre
' -- [IN] filename : type de fichier dont on veur trouver
' -- l'application pour l'ouvrir
' -- [RETURN] le chemin de l'executable
' -- ("" si aucun executable n'a été trouvé)
' -------------------------------------------------------------------
Private Function getOpenener(ByVal filename As String) As String
Dim fileappli As String * 250
Dim result As Integer
Dim i As Integer
getOpenener = ""
result = FindExecutable(filename, vbNullString, fileappli)
If result > 32 Then
i = InStr(1, fileappli, Chr(0), vbBinaryCompare) - 1
getOpenener = """" & Left$(fileappli, i) & """"
End If
End Function
et utiliser la fonction shell de la maniere suivante
dim filename as string
filename = "monpdf.pdf"
Call Shell(getOpenener(filename) & " """ & filename & """")