Ouverture de pdf par CommandButton sans chemin spécifique

Ben Becker

XLDnaute Nouveau
Bonjour,

après quelques recherches sur le forum pour ouvrir un pdf à la page souhaitée, j'ai trouvé le code suivant qui m'est très utile :

Private Sub CommandButton1_Click()
Dim stAppName As String
stAppName = "C:\\Program Files\\Adobe\\Acrobat 7.0\\Reader\\AcroRD32.exe /A page=7=OpenActions D:\documents\toto.pdf"
Call Shell(stAppName, 1)
End Sub

Je vous demande votre aide, à force d'échecs, pour ouvrir ce fichier à la page voulu sans spécifié son chemin, car celui peut-être enregistré dans des répertoires différents. Si je pousse la réflexion jusqu'au bout, il serait intéressant d'executer AcroRD32.exe sans spécifier également son chemin : le fichier est enregistré sur plusieurs ordinateurs.

Merci par avance
Bonne journée

Ben
 

ledzepfred

XLDnaute Impliqué
Re : Ouverture de pdf par CommandButton sans chemin spécifique

bonjour,

si j'ai bien compris ta demande tu voudrais ouvrir un fichier pdf sans spécifier le chemin, auquel cas ce code pourrait t'aider :

Sub recherche_fichier()
Application.ScreenUpdating = False
With Application.FileSearch
.NewSearch
.Filename = "toto.pdf"
.LookIn = "d:"
.SearchSubFolders = True
.Execute
On Error Resume Next
For Each F In .FoundFiles
Workbooks.Open F
Next
End With
End Sub

J'ai pas testé donc si ça fonctionne ce sera surement à adapter à ta demande

NB: filesearch n'est pas supporté par excel 2007 cependant l'article ci-joint fournit une alternative silkyroad.ftp-developpez.com/vba/classefilesearch/classefilesearch.pdf

a+
 
Dernière édition:

ledzepfred

XLDnaute Impliqué
Re : Ouverture de pdf par CommandButton sans chemin spécifique

re..

essaye ceci:

Sub recherche_fichier()
Dim stAppName As String
FICHIER = "Guide_des_fonctions_de_l'iPod_shuffle.pdf"
Application.ScreenUpdating = False
With Application.FileSearch
.NewSearch
.Filename = FICHIER
.LookIn = "c:"
.SearchSubFolders = True
.Execute
On Error Resume Next
For Each F In .FoundFiles
FOLDER = F.Path
stAppName = "C:\\Program Files\\Adobe\\Acrobat 7.0\\Reader\\AcroRD32.exe /A page=7=OpenActions " & FOLDER & "/" & FICHIER
Call Shell(stAppName, 1)
Next
End With
End Sub

a+
 

Ben Becker

XLDnaute Nouveau
Re : Ouverture de pdf par CommandButton sans chemin spécifique

Bonjour le forum, ledzepfred.

Désolé de ne pas répondre plus tôt (week-end sans ordi obligatoire), et un grand merci pour tes réponses rapides. Je viens de tester tes deux codes et on doit pas être bien loin :
-pour le premier, cela m'ouvre un classeur excel avec les données du fichier pdf, donc un peu éloigné de ce que je recherche
- pour le deuxième, c'est exactement ce qu'il me faut, mais quand je le lance il arrive à ouvrir Adobe mais il ne trouve pas mon fichier. En regardant le code, j'ai modifié le "\" sans grand succès

Voici le code utilisé :

Private Sub CommandButton1_Click()
Dim stAppName As String
Fichier = "toto.pdf"
Application.ScreenUpdating = False
With Application.FileSearch
.NewSearch
.Filename = Fichier
.LookIn = "D:"
.SearchSubFolders = True
.Execute
On Error Resume Next
For Each F In .FoundFiles
FOLDER = F.Path
stAppName = "C:\\Program Files\\Adobe\\Acrobat 7.0\\Reader\\AcroRD32.exe /A page=7=OpenActions " & FOLDER & "\" & Fichier
Call Shell(stAppName, 1)
Next
End With
End Sub

Est-ce que cela marche pour vous ?
Merci par avance

Ben
 

ledzepfred

XLDnaute Impliqué
Re : Ouverture de pdf par CommandButton sans chemin spécifique

bonjour ben,

ci-joint code modifié et qui fonctionne!!!!

Private Sub CommandButton1_Click()
Dim stAppName As String
Fichier = "toto.pdf"
Application.ScreenUpdating = False
With Application.FileSearch
.NewSearch
.Filename = Fichier
.LookIn = "D:"
.SearchSubFolders = True
.Execute
On Error Resume Next
For Each F In .FoundFiles
stAppName = "C:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRD32.exe /A page=7=OpenActions " & F
Call Shell(stAppName, 1)
Next
End With
End Sub


Si ça ne marche pas chez toi, vérifies la lettre du disque sur lequel se trouve ton document pdf, vérifies son nom et le chemin de AcroRD32.exe

A+
 
Dernière édition:

Ben Becker

XLDnaute Nouveau
Re : Ouverture de pdf par CommandButton sans chemin spécifique

Re,

je viens d'essayer : c'est parfait ! Merci beaucoup à toi pour ton aide et ta patience, cela va m'être grandement utile.

A tout hasard, est-il possible de procéder de la sorte pour ne pas spécifier le chemin d'AcroRD32.exe : le fichier étant enregistré sur plusieurs postes qui n'ont pas les mêmes versions d'Adobe...peut-être d'ailleur en mettant comme variable le numero du dossier "Acrobat X.0" (il y a 100 commandButton, donc ca m'arrangerait de ne pas changer le chemin à chaque fois).

J'espère ne pas en demander trop, c'est le problème quand on a de bonnes réponses rapidemment ;-).

Amicalement

Ben
 

ledzepfred

XLDnaute Impliqué
Re : Ouverture de pdf par CommandButton sans chemin spécifique

re...

ben c'est une double recherche, d'abord on cherche AcroRD32.exe en limitant cette recherche au sous répertoire de C:\Program Files, une fois trouvé on déclare en variable le nom complet du fichier et on place cette variable dans stAppName.

J'ai ajouté deux controles : si la recherche d'Acrobat échoue un message apparait mentionnant l'absence d'installation d'acrobat, si la recherche du fichier échoue, un message apparait mentionnant l'absence du fichier dans la lettre du lecteur.
Dans les deux cas, on sort de la procédure

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
On Error Resume Next
'recherche du chemin de AcroRD32.exe
ACRO = "AcroRD32.exe"
With Application.FileSearch
.NewSearch
.Filename = ACRO
.LookIn = "C:\Program Files\"
.SearchSubFolders = True
.Execute
If .Execute = 0 Then
Message = MsgBox("Acrobat reader n'est pas installé sur ce poste!!", vbExclamation, "Echec de la recherche"): Exit Sub
Else:
For Each A In .FoundFiles
resultat = A
[A1].Value = A
Next
End If
'recherche du fichier pdf
Dim stAppName As String
FICHIER = "toto.pdf"
LETTRE = "D:"
.NewSearch
.Filename = FICHIER
.LookIn = LETTRE
.SearchSubFolders = True
.Execute
If .Execute = 0 Then
Message = MsgBox("Le fichier " & FICHIER & " ne se trouve pas sur le disque " & LETTRE & " !!", vbExclamation, "Echec de la recherche"): Exit Sub
Exit Sub
Else
For Each F In .FoundFiles
stAppName = resultat & " /A page=7=OpenActions " & F
Call Shell(stAppName, 1)
Next
End If
End With
End Sub

En espérant que cela te convienne

a+
 

Ben Becker

XLDnaute Nouveau
Re : Ouverture de pdf par CommandButton sans chemin spécifique

Dernier re,

j'ai testé ca sur différents postes, ca fonctionne à merveille. Je te remercie beaucoup pour ta disponibilité et ta rapidité. J'ai même compris le code (ca commence à rentrer à force :).

A bientot

Ben
 

Statistiques des forums

Discussions
312 493
Messages
2 088 949
Membres
103 989
dernier inscrit
jralonso