Rendre valable les évènements worksheet dans l'intégralité du classeur?

Bonjour à Tous !

Voilà je voulais savoir, je suis sur un fichier de travail ou des évènements worksheet sont déclenchés.

Ce fichier contient un onglet "TRAME" que l'utilisateur va copier à l'infini pour noter ses taches. (un onglet par projet)

J'ai mis des évenements worksheet sur la feuille "TRAME" qui sont donc automatiquement copié quand l'utilisateur copie l'onglet.

Mais j'aimerais en fait mettre mon code evenements worksheet à 1 seul endroit et qui soit valable pour toutes les feuilles du classeur.

pour 2 raisons,

1 - Le code des évènements prends forcement de la place (Ko) donc c'est toujours mieux de ne pas recopier ce code partout pour alleger le fichier

2 - si je veux faire une mise à jour du code celà s'appliquera à toute les feuilles! sinon je dois recopier le code dans toutes les feuilles créées

j'ai essayé de copier bêtement dans le workbook mais pas sur que ce soit la bonne solution.

il doit falloir par exemple mettre dans un module et trouver une expression du type for each worksheet ou quelque chose du genre j'imagine ?

désolé c'est surement une question bête mais je vois pas comment faire

Merci d'avance pour votre réponse

Bonjour,

Il faut bien une macro évènementielle dans le module thisworkbook. Par exemple, worksheet_change devient workbook_sheetchange. Mais aidez-vous des 2 listes en haut du module, ce sera plus simple.

Cdlt,

Bonjour,

Sans fichier difficile d'aiguiller. Mais en tout cas les procédures événementielles sont assez complexes à gérer du fait qu'elles peuvent interagir entre elles et provoquer des effets de bord non souhaités ...

Parfois on utilise le module ThisWorkbook pour en effet éviter de recopier les procédures dans chaque Worksheet, mais là encore, tout dépend des procédures et de leur transposition dans ce module.

On peu aussi créer une forme qui est associé la macro dans un module standard. A ce moment là, une seule macro, un bouton par feuille. Il suffit de jouer sur le bouton (couleur de remplissage transparent, bordure absente, etc ...) le foutre sur une feuille et la macro est liée et on y voit que du feu (hormis que la cellule devient inaccessible directement dû à l'objet qui est dessus).

Cdlt,

Ha tout bon 3GB, j'ai muté mon évènement Worksheet change et worksheet beforedoubleclick vers l'équivalent en workbook, je n'avais pas fais attention à ce petit menu déroulant, c'est bien pratique !!

Ergotamine, je suis d'accord avec toi, les évenements worksheet sont à risque et souvent pas souhaitable sur l'intégralité du classeur, hors ici je sais que le fichier

n'aura jamais d'onglet "spécifique" avec une "mise en page" différente. j'ai même créer un bouton spécial pour la création de feuille qui copie tous le temps la trame principale.

du coup l'utilisateur travaillera toujours sur un onglet de type "Trame" pour lequel les évènements seront toujours valable.

D'ailleurs Ergotamine c'est le même fichier pour lequel tu m'as fourni le code pour insérer un lien hypertexte en direct via l'evement change.

qui permet de transformer la valeur de la cellule active en lien hypertexte (en gardant la valeur entrée)

c'est vraiment top !!

Salut Ergotamine !

@ Mickou : Nickel ! Ensuite, je ne sais pas si tu as vu mais la macro dépend d'un paramètre supplémentaire Sh. Il s'agit d'un objet feuille. Donc tu peux rajouter des conditions, par exemple :

if Sh.name like "TRAME*" then
'mon code
end if

Si besoin, tu peux poster les codes à adapter.

Cdlt,

ha non je n'ai pas vu ça! intéressant !

car je force les onglets à s'appeler "DS" et "choix de l'utilisateur" via un bouton macro et une msgbox.

donc je pourrais dire

if  Sh.name like "DS*" then
'mon code
end if

et du coup si quelqu'un décide de créer une feuille avec le bouton classique de création et appelle sa feuille exemple "Mémo" comme elle ne commence pas par "DS" les évènements ne sont pas appliqué c'est bien ça ?

Exactement, le code s'applique sur tout le classeur (à chaque changement, résultant d'une saisie, sur chaque feuille) mais celui au sein de la condition ne s'applique que lorsque celle-ci est vérifiée, en l'occurrence que pour les feuilles commençant par DS dans l'exemple.

Rechercher des sujets similaires à "rendre valable evenements worksheet integralite classeur"