Mettre son code dans 1 Feuille ou ThisWorkbook ou un module ?

  • Initiateur de la discussion Initiateur de la discussion patamod
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

patamod

Guest
Bonjour,

C'est pour me confirmer que j'ai bien compris.

Si on met son code VB dans :

- Microsoft Excel Object/FeuilX : le code ne peut agir que sur cette feuille;

- Microsoft Excel Object/ThisWorkBook : le code peut agir sur toutes les feuilles du classeur;

- Modules/ModuleX : le code peut agir sur tous les classeurs ouverts;

Merci
Pat'
 
Re : Mettre son code dans 1 Feuille ou ThisWorkbook ou un module ?

Bonsoir patamod,

Je pense que ce que tu as indiqué est juste, mais les parties FeuilX et Thisworkbook sont des "modules de classe" réservés aux évènements associés respectivement à la feuille ou au classeur
Je te conseille vivement de les utiliser spécifiquement pour ce code évènementiel, les codes généraux étant à mettre dans un module classique, quels que soient les objets sur lesquels ils interagissent
En tout cas, c'est ma façon de travailler 🙂
 
Dernière édition:
Re : Mettre son code dans 1 Feuille ou ThisWorkbook ou un module ?

Bonsoir à tous



J'ai un gros doute là-dessus :
Si on met son code VB dans :

- Microsoft Excel Object/FeuilX : le code ne peut agir que sur cette feuille;
Dans le classeur joint, il y a deux procédures Toto : une dans le module de la feuille Feuil1 (onglet 1), l'autre dans le module de la feuille Feuil2 (onglet 2). Exécutez-les et observez...​


ROGER2327
#5759


Mardi 17 Clinamen 139 (Saint Hiéronymus Bosch, démonarque - fête Suprême Quarte)
19 Germinal An CCXX, 9,6671h - radis
2012-W14-7T23:12:03Z
 

Pièces jointes

Dernière édition:
Re : Mettre son code dans 1 Feuille ou ThisWorkbook ou un module ?

Bonjour et merci pour vos réponses;

j'ai fais un petit test rapide :


Sub test()
[A1] = "toto"
End Sub


- Placée dans le module Feuill1 : je peux la lancer (par le menu macro) depuis feuill2, mais la routine remplit A1 de la feuille 1.
- Placée dans ThisWorkbook : je peux la lancer depuis feuill2,et la routine remplit A1 de la feuille 2. En fait elle remplit la cellule A1 de la feuille affichée dans excel au moment où la routine est lancée.
- Placée dans Modules/Module1 : même résultat qu'en placant dans ThisWorkbook.
Par contre Roger2327 montre que du code dans Feuill1 peut lancer une macro dans une autre (Application.run; je découvre ! merci).

Je n'utilise pas de code évènement, je ne fais que de l'analyse simple (je compte les cellules qui ont une valeur>X, <Y, etc.).
Du coup, je pense que le mieux est de mettre mon code dans "module1", et de toujours indiquer quel est l'onglet concerné ?

Pat'
 
Re : Mettre son code dans 1 Feuille ou ThisWorkbook ou un module ?

Bonjour
Attention, quand tu ne précises pas la feuille sur laquelle la macro agit, par défaut, c'est la feuille active qui est impactée, y compris d'ailleurs si elle n'est pas dans le classeur contenant la macro !
Donc, plutot que de tabler sur l'endroit où tu écris tes macros, prends l'habitude de préciser dans chaque macro de quelle cellule A1 tu parles.
Workbooks("truc.xls") en début de macro pour être sur d'agir dans le bon classeur
set mafeuille=sheets("feuille_truc") et ensuite tu fais référence à ma feuille ou sinon
sheets("mafeuille").range("A1")=...


Ce qui est impératif : mettre les fonctions personnalisées dans un module ordinaire.
Mais sinon, comme tototiti, je ne mets dans le module de la feuille QUE les macros événementielles c'est à dire celles qui s'activent lorsqu'on change le contenu d'une cellule par exemple. Et dans le module ThisWorkbook, je ne mets que les événementielles qui s'appliquent au classeur (beforeclose, beforeprint...)
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
32
Affichages
1 K
Réponses
6
Affichages
591
Retour