ShellExecute pour ouvrir un PDF

Résolu
drogba28 Messages postés 13 Date d'inscription mardi 28 septembre 2004 Statut Membre Dernière intervention 30 mars 2011 - 30 mars 2009 à 12:50
drogba28 Messages postés 13 Date d'inscription mardi 28 septembre 2004 Statut Membre Dernière intervention 30 mars 2011 - 31 mars 2009 à 13:27
Bonjour,



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 




Je débute sur Vb et j’ai un petit problème pour un code.


Je souhaite à l’aide d’un bouton ouvrir un PDF en chemin relatif sur une page précise.



 




J’utilise le code ci-dessous qui fonctionne très bien mais il me manque juste la partie du code pour préciser la page que je souhaite ouvrir.



 




Private Sub CommandButton2_Click()



   



  Dim hwnd As Long



  ShellExecute hwnd, "open", ActiveWorkbook.Path & "\agriculture-gda08.pdf", "", "", 1



 




Exit Sub


End sub

Merci
A voir également:

12 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
31 mars 2009 à 13:17
CommandButton2_Click est une procédure appelée automatiquement lorsque l'on clique sur le bouton nommé CommandButton2

si tu t'amuses a modifier ses parametres, VBA va se perdre.
----------

ces lignes sont a placer dans la partie déclaration (tout en haut) du code de ta form:

Private Declare Function FindExecutable Lib "shell32.dll" Alias "FindExecutableA" (ByVal lpFile As String, ByVal lpDirectory As String, ByVal lpResult As String) 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

----------------
Cette fonction est a coller telle quelle:


Private Sub OpenPDF(ByRef vsFilePath As String, Optional ByVal vnPage As Long = 1)
Dim sBuffer As String
Dim nLength As Long
sBuffer = Space$(260)
nLength = FindExecutable(vsFilePath, vbNullString, sBuffer)
If nLength Then
nLength = InStr(sBuffer, vbNullChar)
If nLength Then
sBuffer = Left$(sBuffer, nLength - 1)
ShellExecute 0&, "open", sBuffer, "/A page=" & Trim$(Str$(vnPage)) & " """ & vsFilePath & """", vbNullString, 1
End If
End If
End Sub


---------------
Enfin, pour ouvrir le PDF, il te suffit d'appeler la fonction OpenPDF en lui spécifiant le chemindu document a ouvrir :


OpenPDF ActiveWorkbook.Path & "\Fiche PFE\Conseil Général\agriculture-gda08.pdf", 40

ainsi, pour effectuer le chargement lors d'un click sur le bouton2:

Private sub CommandButton2_Click ()
OpenPDF ActiveWorkbook.Path & "\Fiche PFE\Conseil Général\agriculture-gda08.pdf", 40
End Sub


----------
1