La logique des Modules
Résolu
Bertrand_Labevue
Messages postés
18
Date d'inscription
Statut
Membre
Dernière intervention
-
gbinforme Messages postés 14946 Date d'inscription Statut Contributeur Dernière intervention -
gbinforme Messages postés 14946 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
sous excel 2003, j'ai aussi une question par rapport à la différence d'utilisation entre les macros VBA écrites sur des feuilles (dossier Microsoft Excel Object) et les Modules (dossier Modules)
j'aimerais plus tard pouvoir exporter ma macro et donc l'écrire dans un module. Or le module ne se laisse pas renommer (l'option existe, j'en suis sûr mais ce n'est ni par clic droit ni par raccourci F2...) quelle est donc la bonne méthode ?
seconde question, moins triviale: j'ai un bouton relié à ma macro. Ce bouton fonctionne tant que le code est dans la feuille correspondante mais cesse de fonctionner quand je le déplace dans mon module. Comment puis-je déplacer mon bout de code ?
Merci d'avance.
sous excel 2003, j'ai aussi une question par rapport à la différence d'utilisation entre les macros VBA écrites sur des feuilles (dossier Microsoft Excel Object) et les Modules (dossier Modules)
j'aimerais plus tard pouvoir exporter ma macro et donc l'écrire dans un module. Or le module ne se laisse pas renommer (l'option existe, j'en suis sûr mais ce n'est ni par clic droit ni par raccourci F2...) quelle est donc la bonne méthode ?
seconde question, moins triviale: j'ai un bouton relié à ma macro. Ce bouton fonctionne tant que le code est dans la feuille correspondante mais cesse de fonctionner quand je le déplace dans mon module. Comment puis-je déplacer mon bout de code ?
Merci d'avance.
4 réponses
Bonjour,
Les macros VBA écrites sur des feuilles sont accessible pour la feuille (à quelques nuances près tout de même) et les Modules sont accessibles depuis l'ensemble du classeur et éventuellement de la cession et il faut donc qualifier la feuille visée.
Ceci te fait comprendre ta seconde question aussi.
Les macros VBA écrites sur des feuilles sont accessible pour la feuille (à quelques nuances près tout de même) et les Modules sont accessibles depuis l'ensemble du classeur et éventuellement de la cession et il faut donc qualifier la feuille visée.
Ceci te fait comprendre ta seconde question aussi.
Donc je dois "qualifier la feuille visée" ? ça veut dire rajouter quelque chose dans le module pour qu'il sache ce à quoi il s'adresse ? (je m'en doutais un peu, mais je n'ai trouvé quelle syntaxe utiliser pour cela)...
De façon générique, est ce que tu connais un tuto qui détaille spécifiquement ce point ? j'ai un peu cherché sans trouver ce qui correspondait à cette question.
De façon générique, est ce que tu connais un tuto qui détaille spécifiquement ce point ? j'ai un peu cherché sans trouver ce qui correspondait à cette question.
Bonjour,
Si tu fais :
Dans un module tu qualifies :
De même pour tous les objets que tu traites.
Il faut se méfier des qualifications implicites car parfois tu vas traiter ce que tu n'attendais pas !
Si tu fais :
cells(1,1).value="x"dans une procédure de feuille pas de problème
Dans un module tu qualifies :
activesheet.cells(1,1).value="x"ou
sheets("mafeuilleàtraiter").cells(1,1).value="x"
De même pour tous les objets que tu traites.
Il faut se méfier des qualifications implicites car parfois tu vas traiter ce que tu n'attendais pas !
d'accord, je vois l'idée. Et pour un bouton (puisque la macro démarre là) n'y aurait-il pas un truc supplémentaire à faire pour que la macro reconnaisse le bouton à partir d'un module ?
Bon en fait j'ai compris le souci: il fallait faire un dessin (de rectangle par exemple) puis faire "affecter une macro" pour pouvoir ensuite utiliser le module. Merci pour les conseils, ça me sera utile par la suite.
Bon en fait j'ai compris le souci: il fallait faire un dessin (de rectangle par exemple) puis faire "affecter une macro" pour pouvoir ensuite utiliser le module. Merci pour les conseils, ça me sera utile par la suite.
Bonjour,
pour que la macro reconnaisse le bouton à partir d'un module ?
Ce n'est pas tout à fait cela. Tu associes la macro au bouton :
- si ta macro est 'Public' elle peut être dans la feuille ou dans un module
- si ta macro n'est pas qualifiée, elle est dans la feuille.
Ensuite c'est dans la macro que tu doit qualifier les objets pour traiter celui qui est visé : dans un module tu peux adresser toutes les feuilles.
pour que la macro reconnaisse le bouton à partir d'un module ?
Ce n'est pas tout à fait cela. Tu associes la macro au bouton :
- si ta macro est 'Public' elle peut être dans la feuille ou dans un module
- si ta macro n'est pas qualifiée, elle est dans la feuille.
Ensuite c'est dans la macro que tu doit qualifier les objets pour traiter celui qui est visé : dans un module tu peux adresser toutes les feuilles.