Bonjour,
Je dois ouvrir un fichier pdf par du code vba (sous excel ici).
Ce document est protégé par mot de passe donc une fois acrobat reader lancé, il demande la saisi du mot de passe avant d'ouvrir le document (logique).
Au début j'ai utilisé la fonction ShellExecute pour ouvrir le fichier pdf comment ça je ne suis pas obligé de spécifier le nom de l'exe à utiliser pour ouvrir le fichier pdf :
Mais finalement, j'ai abandonné cette solution car une fois que j'ai ouvert le pdf, il faut que je prenne le focus dessus pour saisir (par code) le mot de passe du document pdf.
Code : Sélectionner tout - Visualiser dans une fenêtre à part RetVal = ShellExecute(hwnd, "Open", s_FileMenuNameFound, "", 0&, SW_Normal)
Et là j'utilise la ligne de code suivante :
où RetVal est le code retour du ShellExecute précédent. Et ça ne fonctionne pas.AppActivate (RetVal )
Du coup j'utilise la fonction Shell comme ceci :
s_FileMenuNameFound = chemin du document pdf
Ce code fonctionne bien, le mot de passe est bien saisi mais ce qui m'embête c'est de devoir appeler l'exe acrobat avec Shell("C:\Program Files\Adobe\Reader 9.0\Reader\AcroRD32.exe " ...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 x = Shell("C:\Program Files\Adobe\Reader 9.0\Reader\AcroRD32.exe " & s_FileMenuNameFound) 'send password AppActivate (x) Application.SendKeys "mot de passe à saisir", True Application.SendKeys "~", True
ça ne fonctionnera pas si l'utilisateur n'a pas AcroRD32.exe dans c:\program files... mais dans d:\program files par exemple.
Est-ce possible d'utiliser le Shellexecute avec AppActivate ? Si oui comment ?
Ou sinon, comment puis-je faire pour ouvrir le fichier pdf sans spécifier le chemin de l'exe à utiliser ?
Merci d'avance
Boubou_s
Partager