Ligne de commande ouverture d'un pdf
Fermé
cpaumier
-
22 nov. 2012 à 14:07
VBACripteur Messages postés 4 Date d'inscription jeudi 22 novembre 2012 Statut Membre Dernière intervention 14 mai 2013 - 23 nov. 2012 à 10:36
VBACripteur Messages postés 4 Date d'inscription jeudi 22 novembre 2012 Statut Membre Dernière intervention 14 mai 2013 - 23 nov. 2012 à 10:36
A voir également:
- Ligne de commande ouverture d'un pdf
- Invite de commande - Guide
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Comment faire un pdf - Guide
- Comment modifier un pdf - Guide
- Site de vente en ligne particulier - Guide
1 réponse
VBACripteur
Messages postés
4
Date d'inscription
jeudi 22 novembre 2012
Statut
Membre
Dernière intervention
14 mai 2013
23 nov. 2012 à 10:36
23 nov. 2012 à 10:36
Bonjour,
Tu peux utiliser les API pour ça;
'*****
Open_with_api (strFilePath) ' ouverture par API Windons
'*****
Public Sub Open_with_api(ByVal strPath As String)
' Procédure ouvrant un fichier ou dossier strPdfPath par l'API Windows
Dim status, hWnd As Long
Dim response As Integer
Dim sErr As String
Const SE_ERR_FNF = 2 ' fichier non trouvé ou chemin incorrect
Const SE_ERR_PNF = 3 ' chemin inconnu
Const SE_ERR_ACCESSDENIED = 5 ' accès interdit
Const SE_ERR_OOM = 8 ' dépassement de mémoire
Const SE_ERR_BAD_FORMAT = 11 ' exécutable non valide ou corrompu
Const SE_ERR_SHARE = 26 ' violation de partage
Const SE_ERR_ASSOCINCOMPLETE = 27 ' pas association valable
Const SE_ERR_DDETIMEOUT = 28 ' délai max d'ouverture dépassé
Const SE_ERR_DDEFAIL = 29 ' la transaction DDE a failli
Const SE_ERR_DDEBUSY = 30 ' le fichier n'a pu être ouvert car en cours d'utilisation
Const SE_ERR_NOASSOC = 31 ' aucune association définie pour ce type de fichier
Const SE_ERR_DLLNOTFOUND = 32 ' DLL non trouvée
status = ShellExecute(hWnd, "Open", strPath, ByVal 0&, 0&, SW_SHOWMAXIMIZED)
If (status >= 0) And (status <= 32) Then
Select Case status
Case 0
sErr = "Le système manque de mémoire ou de ressources, l'exécutable est corrompu ou réallocations non valides"
Case SE_ERR_FNF
sErr = "Fichier non trouvé ou chemin incorrect"
Case SE_ERR_PNF
sErr = "Chemin inconnu"
Case SE_ERR_ACCESSDENIED
sErr = "Erreur accès au répertoire ou au fichier"
Case SE_ERR_OOM
sErr = "Pas assez de mémoire"
Case SE_ERR_BAD_FORMAT
sErr = "Executable non valide ou corrompu"
Case SE_ERR_SHARE
sErr = "Violation de partage !."
Case SE_ERR_ASSOCINCOMPLETE
sErr = "Ce type de fichier est sans association valable"
Case SE_ERR_DDETIMEOUT
sErr = "Le fichier n'a pu être ouvert (délai max dépassé). Recommencez plus tard SVP."
Case SE_ERR_DDEFAIL
sErr = "Le fichier n'a pu être ouvert car la transaction DDE a failli. Recommencez plus tard SVP."
Case SE_ERR_DDEBUSY
sErr = "Le fichier n'a pu être ouvert car en cours d'utilisation. Recommencez plus tard SVP."
Case SE_ERR_NOASSOC
sErr = "Aucune association définie pour ce type de fichier"
Case SE_ERR_DLLNOTFOUND
sErr = "Impossible de trouver la DLL spécifiée."
Case Else
sErr = "Une erreur inconnue n°" & status & " a surgi au moment d'essayer d'ouvrir ou d'éditer le fichier choisi."
End Select
response = MsgBox(sErr & vbLf & vbLf & "Veuillez prendre contact avec l'administrateur du fichier '" & ActiveWorkbook.Name & "'.", vbCritical, "Erreur Open_with_api")
End If
End Sub
Ne pas oublier les déclarations suivantes en début de module:
'****************************************************************************************************************
'* Déclaration des fonctions et procédures extérieures *
'****************************************************************************************************************
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
'****************************************************************************************************************
'****************************************************************************************************************
'* Déclaration des constantes *
'****************************************************************************************************************
Public Const SW_SHOWNORMAL = 1
Public Const SW_SHOWMAXIMIZED = 3
Tu peux utiliser les API pour ça;
'*****
Open_with_api (strFilePath) ' ouverture par API Windons
'*****
Public Sub Open_with_api(ByVal strPath As String)
' Procédure ouvrant un fichier ou dossier strPdfPath par l'API Windows
Dim status, hWnd As Long
Dim response As Integer
Dim sErr As String
Const SE_ERR_FNF = 2 ' fichier non trouvé ou chemin incorrect
Const SE_ERR_PNF = 3 ' chemin inconnu
Const SE_ERR_ACCESSDENIED = 5 ' accès interdit
Const SE_ERR_OOM = 8 ' dépassement de mémoire
Const SE_ERR_BAD_FORMAT = 11 ' exécutable non valide ou corrompu
Const SE_ERR_SHARE = 26 ' violation de partage
Const SE_ERR_ASSOCINCOMPLETE = 27 ' pas association valable
Const SE_ERR_DDETIMEOUT = 28 ' délai max d'ouverture dépassé
Const SE_ERR_DDEFAIL = 29 ' la transaction DDE a failli
Const SE_ERR_DDEBUSY = 30 ' le fichier n'a pu être ouvert car en cours d'utilisation
Const SE_ERR_NOASSOC = 31 ' aucune association définie pour ce type de fichier
Const SE_ERR_DLLNOTFOUND = 32 ' DLL non trouvée
status = ShellExecute(hWnd, "Open", strPath, ByVal 0&, 0&, SW_SHOWMAXIMIZED)
If (status >= 0) And (status <= 32) Then
Select Case status
Case 0
sErr = "Le système manque de mémoire ou de ressources, l'exécutable est corrompu ou réallocations non valides"
Case SE_ERR_FNF
sErr = "Fichier non trouvé ou chemin incorrect"
Case SE_ERR_PNF
sErr = "Chemin inconnu"
Case SE_ERR_ACCESSDENIED
sErr = "Erreur accès au répertoire ou au fichier"
Case SE_ERR_OOM
sErr = "Pas assez de mémoire"
Case SE_ERR_BAD_FORMAT
sErr = "Executable non valide ou corrompu"
Case SE_ERR_SHARE
sErr = "Violation de partage !."
Case SE_ERR_ASSOCINCOMPLETE
sErr = "Ce type de fichier est sans association valable"
Case SE_ERR_DDETIMEOUT
sErr = "Le fichier n'a pu être ouvert (délai max dépassé). Recommencez plus tard SVP."
Case SE_ERR_DDEFAIL
sErr = "Le fichier n'a pu être ouvert car la transaction DDE a failli. Recommencez plus tard SVP."
Case SE_ERR_DDEBUSY
sErr = "Le fichier n'a pu être ouvert car en cours d'utilisation. Recommencez plus tard SVP."
Case SE_ERR_NOASSOC
sErr = "Aucune association définie pour ce type de fichier"
Case SE_ERR_DLLNOTFOUND
sErr = "Impossible de trouver la DLL spécifiée."
Case Else
sErr = "Une erreur inconnue n°" & status & " a surgi au moment d'essayer d'ouvrir ou d'éditer le fichier choisi."
End Select
response = MsgBox(sErr & vbLf & vbLf & "Veuillez prendre contact avec l'administrateur du fichier '" & ActiveWorkbook.Name & "'.", vbCritical, "Erreur Open_with_api")
End If
End Sub
Ne pas oublier les déclarations suivantes en début de module:
'****************************************************************************************************************
'* Déclaration des fonctions et procédures extérieures *
'****************************************************************************************************************
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
'****************************************************************************************************************
'****************************************************************************************************************
'* Déclaration des constantes *
'****************************************************************************************************************
Public Const SW_SHOWNORMAL = 1
Public Const SW_SHOWMAXIMIZED = 3