Dans une de mes applic j'utilise le code suivant pour ouvrir un fichier
format PDF depuis EXCEL et cela fonctionne au poil.
Si le fichier n'existe il ne se passe rien, même pas un code error.
ma question : Est-il possible de faire en sorte que si le fichier n'est pas
trouvé j'affiche une MsgBox pour en informer l'utilisateur ?
J'ai trouvé ce code sur le net mais je ne sais plus où, si son auteur se
reconnaît qu'il veuille bien me pardonner de ne pas le citer car je ne me
souviens plus ou j'ai "gratté" ce code...
Merci de vos conseils.
Cordialement.
Excel...lent
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
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 Long) As Long
Private Const SW_SHOWNORMAL = 1
Public Function OuvrirPdf(pdfName As String) As Boolean Dim lResult As Long Dim Msg As String
lResult = ShellExecute(0, "open", pdfName, "", "", SW_SHOWNORMAL) If lResult <= 32 Then Select Case lResult Case SE_ERR_FNF: Msg = "Fichier non trouvé" Case SE_ERR_PNF: Msg = "Chemin non trouvé" Case SE_ERR_ACCESSDENIED: Msg = "Acces refusé" Case SE_ERR_OOM: Msg = "Dépassement mémoire" Case SE_ERR_DLLNOTFOUND: Msg = "Dll no trouvée"
Case SE_ERR_SHARE: Msg = "Violation de partage" Case SE_ERR_ASSOCINCOMPLETE: Msg = "Association incomplète" Case SE_ERR_DDETIMEOUT: Msg = "DDE TimeOut" Case SE_ERR_DDEFAIL: Msg = "DDE Failed" Case SE_ERR_DDEBUSY: Msg = "DDE occupé" Case SE_ERR_NOASSOC: Msg = "Pas d'association" Case Else: Msg = "Erreur n° " & lResult End Select MsgBox Msg & vbCrLf & pdfName, vbOKOnly OuvrirPdf = False Else OuvrirPdf = True End If End Function
Bonjour,
Dans une de mes applic j'utilise le code suivant pour ouvrir un fichier format PDF depuis EXCEL et cela fonctionne au poil. Si le fichier n'existe il ne se passe rien, même pas un code error. ma question : Est-il possible de faire en sorte que si le fichier n'est pas trouvé j'affiche une MsgBox pour en informer l'utilisateur ? J'ai trouvé ce code sur le net mais je ne sais plus où, si son auteur se reconnaît qu'il veuille bien me pardonner de ne pas le citer car je ne me souviens plus ou j'ai "gratté" ce code...
Merci de vos conseils.
Cordialement.
Excel...lent
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
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 Long) As Long
Private Const SW_SHOWNORMAL = 1
Public Function OuvrirPdf(pdfName As String) As Boolean
Dim lResult As Long
Dim Msg As String
lResult = ShellExecute(0, "open", pdfName, "", "", SW_SHOWNORMAL)
If lResult <= 32 Then
Select Case lResult
Case SE_ERR_FNF: Msg = "Fichier non trouvé"
Case SE_ERR_PNF: Msg = "Chemin non trouvé"
Case SE_ERR_ACCESSDENIED: Msg = "Acces refusé"
Case SE_ERR_OOM: Msg = "Dépassement mémoire"
Case SE_ERR_DLLNOTFOUND: Msg = "Dll no trouvée"
Case SE_ERR_SHARE: Msg = "Violation de partage"
Case SE_ERR_ASSOCINCOMPLETE: Msg = "Association incomplète"
Case SE_ERR_DDETIMEOUT: Msg = "DDE TimeOut"
Case SE_ERR_DDEFAIL: Msg = "DDE Failed"
Case SE_ERR_DDEBUSY: Msg = "DDE occupé"
Case SE_ERR_NOASSOC: Msg = "Pas d'association"
Case Else: Msg = "Erreur n° " & lResult
End Select
MsgBox Msg & vbCrLf & pdfName, vbOKOnly
OuvrirPdf = False
Else
OuvrirPdf = True
End If
End Function
Bonjour,
Dans une de mes applic j'utilise le code suivant pour ouvrir un fichier
format PDF depuis EXCEL et cela fonctionne au poil.
Si le fichier n'existe il ne se passe rien, même pas un code error.
ma question : Est-il possible de faire en sorte que si le fichier n'est pas
trouvé j'affiche une MsgBox pour en informer l'utilisateur ?
J'ai trouvé ce code sur le net mais je ne sais plus où, si son auteur se
reconnaît qu'il veuille bien me pardonner de ne pas le citer car je ne me
souviens plus ou j'ai "gratté" ce code...
Merci de vos conseils.
Cordialement.
Excel...lent
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
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 Long) As Long
Private Const SW_SHOWNORMAL = 1
Public Function OuvrirPdf(pdfName As String) As Boolean Dim lResult As Long Dim Msg As String
lResult = ShellExecute(0, "open", pdfName, "", "", SW_SHOWNORMAL) If lResult <= 32 Then Select Case lResult Case SE_ERR_FNF: Msg = "Fichier non trouvé" Case SE_ERR_PNF: Msg = "Chemin non trouvé" Case SE_ERR_ACCESSDENIED: Msg = "Acces refusé" Case SE_ERR_OOM: Msg = "Dépassement mémoire" Case SE_ERR_DLLNOTFOUND: Msg = "Dll no trouvée"
Case SE_ERR_SHARE: Msg = "Violation de partage" Case SE_ERR_ASSOCINCOMPLETE: Msg = "Association incomplète" Case SE_ERR_DDETIMEOUT: Msg = "DDE TimeOut" Case SE_ERR_DDEFAIL: Msg = "DDE Failed" Case SE_ERR_DDEBUSY: Msg = "DDE occupé" Case SE_ERR_NOASSOC: Msg = "Pas d'association" Case Else: Msg = "Erreur n° " & lResult End Select MsgBox Msg & vbCrLf & pdfName, vbOKOnly OuvrirPdf = False Else OuvrirPdf = True End If End Function
Bonjour,
Dans une de mes applic j'utilise le code suivant pour ouvrir un fichier format PDF depuis EXCEL et cela fonctionne au poil. Si le fichier n'existe il ne se passe rien, même pas un code error. ma question : Est-il possible de faire en sorte que si le fichier n'est pas trouvé j'affiche une MsgBox pour en informer l'utilisateur ? J'ai trouvé ce code sur le net mais je ne sais plus où, si son auteur se reconnaît qu'il veuille bien me pardonner de ne pas le citer car je ne me souviens plus ou j'ai "gratté" ce code...
Merci de vos conseils.
Cordialement.
Excel...lent
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
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
Sub ShellOuvrePourExcellent()
Dim Fichier As String, Chemin As String, Texte As String On Error GoTo GestErr
Fichier = "doc deauville.pdf" ' A adapter Chemin = "c:UsersPatrick" ' A adapter
If Dir(Chemin) = "" Then GoTo GestErr Dir (Fichier)
GestErr: Texte = "Le fichier " & Fichier & " n'existe pas" If Dir(Chemin) = "" Then Texte = "Le chemin " & Chemin & " n'existe pas" MsgBox Texte, vbCritical, "Erreur"
End Sub
Cela gère 2 erreurs: si le chemin n'existe pas ou le fichier n'existe pas alors msgbox avec description de l'erreur Sinon Ouverture du fichier PDF
Bonne journée à toi, cela te convient t'il ?
Pat REDNEF
Bjr Excel..lent
une autre solution proche de ton code:
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
Sub ShellOuvrePourExcellent()
Dim Fichier As String, Chemin As String, Texte As String
On Error GoTo GestErr
Fichier = "doc deauville.pdf" ' A adapter
Chemin = "c:UsersPatrick" ' A adapter
If Dir(Chemin) = "" Then GoTo GestErr
Dir (Fichier)
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
Sub ShellOuvrePourExcellent()
Dim Fichier As String, Chemin As String, Texte As String On Error GoTo GestErr
Fichier = "doc deauville.pdf" ' A adapter Chemin = "c:UsersPatrick" ' A adapter
If Dir(Chemin) = "" Then GoTo GestErr Dir (Fichier)