Bouton de commande pour ouvrir fichier pdf

Bonjour à tous,

Avec un camarade nous avons réalisé un conjugateur de verbes en langue provençale qui fonctionne parfaitement.

J'ai réalisé un fichier d'aide pour l'utilisation du conjugateur (qui a une 2° fonction celle d'ajouter des verbes qui ne seraient pas dans la liste des 14000 verbes initiaux, d'où l'aide).

J'ai inséré le fichier pdf au fichier Excel via le menu insertion (Insertion/Groupe Texte/ Objet/onglet "Créer à partir du fichier"/Parcourir/sélection du fichier "Ajudo Counjugatour.pdf" dans le même dossier que le fichier Excel sur mon PC/ case "Afficher sous forme d'icône" cochée). L'objet s'insère bien sur la feuille d'accueil Excel.

J'ai créé un bouton de commande "Aide - Ajudo" pour ouvrir le fichier d'aide dans le lecteur pdf par défaut. Et ça fonctionne parfaitement, sauf...

Quand je mets le dossier contenant mon fichier Excel avec le pdf inséré sur un autre PC ou que je l'envoie à quelqu'un, le fichier d'aide ne s'ouvre pas et il y a un message d'erreur "Erreur d'exécution 1004 : L'élément portant ce nom est introuvable." si je clique sur Débogage

Visual Basic pointe sur la ligne ActiveSheet..du code du bouton de commande que voici :
Private Sub CommandButtonAide_Click()
ActiveSheet.Shapes.Range(Array("Ajudo Counjugatour.pdf")).Select
Selection.Verb Verb:=xlPrimary
End Sub

Je précise que le fichier pdf et le fichier xlsm sont dans le même dossier et que c'est le dossier complet que je copie sur un autre PC.

Je n'arrive pas à comprendre pourquoi et ce qu'il faudrait changer dans le code pour ouvrir le pdf quelque soit la machine sur laquelle est installé le conjugateur.

Merci d'avance de m'apporter vos solutions pour résoudre ce problème.

Bonjour

Utiliser la balise "Code" </>, juste au-dessus de ce texte pour améliorer la présentation du sujet.

Pour ta question, ne faudrait-il pas préciser le chemin d'accès vers le fichier pdf

Chemin = ThisWorkbook.Path

Cordialement

Toutes mes excuses pour les balises.

J'ai oublié de préciser que si j'insère un objet pdf à mon fichier Excel c'est pour éviter d'envoyer 2 fichiers, puisque le pdf est inséré au xlsm.

Sinon pour ce qui est du code :

chemin=ThisWorkbook.Path

je ne sais pas où le taper

Bonjour

Regarde ce code de Jean-Eric

https://forum.excel-pratique.com/viewtopic.php?f=2&t=56615

Cordialement

Bonjour Amadéus,

Merci pour le lien que j'ai bien évidemment suivi.

J'ai fait un copier-coller du code en l'aménageant et en le plaçant dans le Private Sub du bouton. Voilà ce que ça donne :

Private Sub CommandButtonAide_Click()
Dim ws As Worksheet
Dim Chemin As String
Dim NomFichier As String

    Set ws = ActiveSheet
    Chemin = ThisWorkbook.Path & Application.PathSeparator
    NomFichier = ws.Range("A1") & "Ajudo Counjugatour.pdf"

    ThisWorkbook.FollowHyperlink Chemin & NomFichier

    Set ws = Nothing

End Sub

Ça fonctionne super bien sauf si le fichier "Ajudo Counjugatour.pdf" n'est plus dans le même dossier que le fichier Excel. Et c'est logique puisque nous suivons un lien hypertexte

 ThisWorkbook.FollowHyperlink Chemin & NomFichier

vers ce fichier pdf.

Or moi ce que je veux c'est ouvrir le fichier pdf inséré au fichier Excel pour n'avoir à envoyer que le seul fichier Excel et non les 2 fichiers comme c'est le cas actuellement.

Il y a certainement une petite modification à faire peut-être en combinant ce code avec celui d'origine :

ActiveSheet.Shapes.Range(Array("Ajudo Counjugatour.pdf")).Select
    Selection.Verb Verb:=xlPrimary

Qu'en penses-tu ?

bonjour à tous

sur mon Excel, le clic sur l’icône du pdf l'ouvre, alors que le pdf d'origine est dans la corbeille où je l'ai jeté pour faire le test.

pas de VBA

c'est vrai que c'est moyennement joli, mais entre VBA et joli, mon choix est fait.

Bonsoir jmd,

C'est sûr qu'un bouton est plus joli qu'un rectangle avec une icône dedans.

As-tu essayé en copiant ton fichier sur un autre PC voir si ça fonctionne ?

Je viens de faire le test en transférant mon fichier Excel seul sur 2 PC de mon réseau domestique.

Ça fonctionne mais en double-cliquant sur le fichier pdf inséré, pas avec un simple clic.

Je n'ai rien trouvé dans les propriétés qui permettrait d'ouvrir avec un simple clic

oui,

j'ai testé sur un xls (et non un xlsx mais ça devrait être pareil)

un double-clic, ça va pas les dépayser de Windows !

Je pense avoir trouvé ce qui cloche dans mon code. Dans le fichier original j'ai cette ligne :

ActiveSheet.Shapes.Range(Array("Ajudo Counjugatour.pdf")).Select

Mais quand je transfère ce fichier sur un autre ordi, l'objet pdf inséré "Ajudo Counjugatour.pdf" retrouve son nom d'origine à savoir "Objet xxx" qui apparait dans la zone nom en haut à gauche de la barre de formules.

Pour m'en assurer j'ai inséré un nouvel objet pdf (le même fichier) mais je lui ai conservé le nom donné par Excel "Objet 173". Dans le code j'ai remplacé "Ajudo Counjugatour.pdf" par "Objet 173" ce qui donne :

ActiveSheet.Shapes.Range(Array("Objet 173")).Select

J'ai alors transféré mon fichier Excel sur un autre PC et là pas de problème mon fichier d'aide pdf s'est ouvert dans le lecteur pdf par défaut, chez moi Foxit Reader.

Je ferai d'autres tests demain et si ça se confirme je marquerai le problème comme résolu.

Bonsoir,

Je suis de retour : j'ai fait plusieurs tests en envoyant le fichier Excel sur d'autres PC (mon fils et 2 amis) via le réseau local et par mail (à mon frère et à 2 de mes sœurs).

Par le réseau local ça fonctionne sans problème, en revanche pour les envois par mail ça ne marche pas on se retrouve avec le même message d'erreur et la demande de débogage.

C'est à ni rien comprendre......

Rechercher des sujets similaires à "bouton commande ouvrir fichier pdf"