Re- Jean-Marie (CHti160),
Tout d'abord, tu trouveras ci-joint ton fichier modifié selon ma propre façon de faire (ce n'est pas forcément la meilleure !). J'ai tenté de simplifié ton code tout en essayant de conserver ton idée initiale. J'ai laissé sous forme de commentaire tes lignes de code initiales...
Concernant le raisonnement, une question reste toutefois en suspend : quand on clique dans la cellule A3 pour choisir un élément, un lien hypertexte correspondant à cet élément est placé dans cette cellule (c'est le but de la macro Lol). Comment l'utilisateur peut-il
facilement faire un autre choix puisqu'un nouveau clic dans cette même cellule résoud le lien et ne permet plus l'accès à la liste déroulante ? (on peut bien sûr maintenir le bouton de la souris enfoncé ou faire un clic droit, mais ça peut sembler perturbant au premier abord)
Comme tu sembles souhaiter une brève analyse de ton code, rapidement, 2 remarques le concernant :
1/ La déclaration de variables ou de constantes de niveau module (c-a-d placée en haut, avant les procédures) n'est utile que si les dites variables ou constantes doivent être accessibles dans plusieurs procédures tout en conservant leur valeur. C'est le cas des variables dites 'Publiques' par exemple. C'est une méthode très pratique et quelquefois indispensable mais consommatrice de ressources. Comme il n'y a qu'une procédure dans ton module, la déclaration devrait donc se faire à l'intérieur de cette procédure.
2/ Pourquoi utiliser
Application.Run "Ouverturepdf.xls!OuverturePdf" pour lancer simplement la procédure
OuverturePdf ? En tapant
OuverturePdf ou
Call OuverturePdf ça suffit amplement.
J'espère que ces suggestions pourront t'aider et reste à ta disposition pour toutes explications complémentaires...
Cordialement,
Didier_mDF