Feuille et ThisWorkbook

Bonjour,

Je n'arrive pas à trouver la différence/l'intérêt d'écrire du code dans une feuille standard vis à vis de la feuille ThisWorkbook.

Où dois-je écrire mon code et pourquoi ?

Quelles sont les avantages/inconvénients d'écrire du code dans l'une ou l'autre des feuilles ?

Merci d'avance.

Bonjour,

Tous ces objets correspondent à des modules de classe et sont donc dotés des événements qui leur correspondent. Leur principal intérêt est donc de pouvoir utiliser les procédures liées à leurs événements. Au niveau du code, il est possible d'utiliser l'objet "Me" qui les représente.

Par ailleurs ThisWorkBook n'est pas un objet feuille mais un objet classeur qui représente le classeur où s'exécute le code.

Bonjour à tous les deux,

De ce que j'ai compris et si je ne dis pas de bêtises, ils n'ont pas les mêmes portées :

- ThisWorkbook -> Procédure sur événementiel du classeur -> Par exemple à l'ouverture ou fermeture du classeur
- Worksheet -> Procédure sur événementiel de la feuille -> Par exemple lors de l'activation de la feuille, de la mise à jour d'une valeur ou d'un changement de sélection
- Module -> Procédure pouvant agir sur l'ensemble de tes feuilles, ne porte pas sur l’événementiel de l'objet.

Tout dépend de ton besoin.

PS : Merci de me corriger si j'ai raconté n'importe quoi :)

Bonjour Ergotamine,

C'est tout à fait ça. J'ajoute quelques infos supplémentaires. Comme tous ces objets sont des modules de classe, il est possible d'y gérer des événements supplémentaires qui ne leur sont pas directement associés comme des événements Word ou Outlook ou MailEnvelope .

Par ailleurs, bien noter la différence entre les objets ThisWorkBook et ActiveWorkbook. ThisWorkBook est toujours le classeur où s'exécute le code mais n'est pas forcément le classeur actif.

Bonjour Thev,

Merci pour les précisions. Si les moduleN ne sont pas des modules de classes alors que sont-ils ? Car nous arrivons tout de même a gérer des évènements word ou outlook dedans (publipostage, envoi de mail, etc ...) ?

Merci !

Bonjour,

Les modules N sont généralistes et ne sont pas des modules de classe. Les procédures qu'ils contiennent sont appelables directement sans besoin d'être préfixé par le module auquel elles appartiennent.

Il ne peuvent pas gérer d'événements. Dans le publipostage et l'envoi de mail via Outlook, il n'y a pas généralement de gestion d'événements Word ou Outlook. Pour mémo, dans ce fil https://forum.excel-pratique.com/excel/recevoir-un-message-lorsque-le-mail-est-envoye-151067, un exemple de gestion d'un événement Outlook de mail envoyé.

Bonjour,

Je vois un peu mieux à travers ton exemple ce que tu appelles procédure événementielle outlook. C'est que l'application "externe" vient en réponse et via la procédure elle même créer un événement sur ton objet. Je n'avais pas cette subtilité qu'il fallait toujours voir l'incidence sur l'objet où se trouve la procédure.

Merci beaucoup !

Merci à vous deux, vous avez répondu exactement ce que je recherchais !

Rechercher des sujets similaires à "feuille thisworkbook"