Bonjour,
Je connais depuis longtemps developpez.net, et j'ai toujours trouvé les réponses à mes questions en consultant le forum et/ou les tutoriels au cours des dernières années pour mes codes Python et autres.
Aujourd'hui, novice en VBA, je viens enfin poster sur ce forum car malgré mes maintes recherches, je n'arrive pas à 'visualiser' une issue à ma problématique dans la conception de mes macros Excel.
Je ne m'étais jamais essayée au VBA… jusqu'à il y a quelques jours, un peu forcée : dans le cadre de mon boulot (il y a un début à tout !) d'où ma newbietude
Le contexte :
Dans mon tableau Excel, à chaque fin de ligne, j'ai Macro1 et Macro2 toutes deux associées à leur bouton respectif.
- Macro1 : Ouvre une boite de dialogue permettant à l'utilisateur de sélectionner un fichier de type PDF. La macro mémorise le chemin dudit fichier dans une variable globale.
- Macro2 : En un clic sur le bouton : ouvre le lecteur PDF avec le fichier précédemment sélectionné (chemin mémorisé).
Le but de cette manœuvre est de faire en sorte que le fichier PDF relatif au document mentionné sur la ligne du tableau Excel puisse être ouvert en un clic sans à avoir à parcourir l'explorateur de fichiers (=Macro2).
À "enregistrer" (mémoriser) le chemin d'un nouveau fichier PDF pour une nouvelle ligne du tableau, ou modifier un ancien chemin si le document précédemment mémorisé a été modifié (=Macro1)
Le problème :
| Col. X | Col. Y | ------------------------------| Ligne3 | [Macro1] | [Macro2] | Ligne4 | [Macro1] | [Macro2] | Ligne5 | [Macro1] | [Macro2] | etc… | [Macro1] | [Macro2] |
- Ligne3 : Macro2 ouvre bien le fichier pdf précédemment sélectionné avec Macro1 (ou affiche un message d'erreur si le chemin est vide)
- Ligne4 : Si je clique directement sur Macro2, sans avoir sélectionné un fichier avec Macro1, le fichier PDF de la Ligne3 s'affiche à la place du message d'erreur indiquant à l'utilisateur de d'abord sélectionner un document PDF...
Idem donc pour les lignes suivantes.
Évidemment si je donne un nouveau chemin de fichier à Macro1 en ligne4 et que je vais ouvrir le fichier PDF défini en ligne1 : le PDF qui s'affiche sera celui enregistré en ligne4…![]()
Et oui, je n'avais pas vu arriver ce problème…
Concrètement, si je devais formuler une question ce serait : est-ce possible d'exécuter une même macro qui donne un résultat différent selon la ligne où elle est exécutée ? Ou, peut-on lier deux macros données à une seule ligne donnée ?
J'ai vu de tout au cours de mes recherches, je commence donc à douter… et n'ayant jamais fait de VBA, je ne connais peut-être pas les bons termes qui me mèneraient à une plausible solution.
Voilà, j'ai essayé d'être la plus claire possible afin que vous compreniez bien la situation…
J'ai acquis par "passion" lors de mes temps libres de +/- bonnes bases en Python (ainsi que des notions en C et PHP), à titre personnel donc.
J'en suis arrivée à me dire que quand on connaît et qu'on aime un langage, on sait "à peu près quoi chercher" et on trouve facilement… mais là en VBA je dois admettre que je ne trouve pas de vrai charme à ce langage et que je suis complètement paumée !
Merci à ceux qui m'ont lu et d'avance merci à ceux qui me répondront.
Cordialement,
_Tifa_
Partager