|
Publicité | ||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Nom : Fabrice Malnoy
Date d'inscription: février 2010
Messages: 3
|
Bonjour,
J'ai un fichier excel avec une feuille principale et des feuilles annexes qui contiennent chacune une copie d'une colonne différente de la feuille principale. Dans ces feuilles annexes j'utilise l'événement worksheet_calculate() pour lancer des méthodes quand une colonne de la feuille principale a été mise à jour. J'utilise l'événement Worksheet_change(byval Target As Range) dans la feuille principale pour mémoriser l'adresse de la cellule qui vient d'être modifiée. les événements des feuilles annexes sont parfois exécutées avant l'événement Worksheet_change(byval Target As Range), ce qui pose problème car l'adresse de la cellule modifiée n'a pas encore été mémorisée. La question: comment régler les priorités entre l'exécution des événements ? |
|
|
|
|
|
#2 |
|
Membre expérimenté
![]() Date d'inscription: juin 2006
Localisation: Saint Thois
Messages: 516
|
Salut, à consulter http://www.cpearson.com/EXCEL/Events.aspx
|
|
|
|
|
|
#3 | |
|
Invité de passage
![]() Nom : Fabrice Malnoy
Date d'inscription: février 2010
Messages: 3
|
Citation:
Je n'ai pas l'impression que l'ordre d'execution entre sheet soit géré. Il est écrit d'abord le WS, puis le WB puis l'APP. Mais que se passe-t-il quand des Events de plusieurs WS sont appelés en même temps ? Comment gérer les priorités ?? |
|
|
|
|
|
|
#4 |
|
Membre Expert
![]() Nom : Frédéric Vandermeulen
Date d'inscription: juillet 2007
Localisation: Bruxelles
Âge: 34
Messages: 1 414
|
Salut,
Je suis pas certain d'avoir bien cerné l'enchainement des tes évènements, mais à priori, le "prioritaire" est le Worksheet_change. Dans ce cas, place la ligne en début de code: Code :
Application.enableEvents = false 'Empêche les évènements Code :
Application.enableEvents = true 'Empêche les évènements A+
__________________
N'oubliez pas le si votre problème est solutionné.
|
|
|
|
|
|
#5 |
|
Invité de passage
![]() Nom : Fabrice Malnoy
Date d'inscription: février 2010
Messages: 3
|
Bonjour,
J'ai essayé mais ca ne marche pas. J'ai 5 feuilles: - Feuille 1 : feuille principale qui contient l'Event Worksheet_change(byval Target As Range) pour mémoriser l'adresse de la cellule modifiée (j'utilise cet Event car on ne sait jamais si le user a appuyé sur la touceh Enter, flèche de droite ...) - La feuille2 contient une copie de la colonne 10 de la feuille 1. Quand cette colonne est modifié, l'Event worksheet_calculate() est ensuite utilisé pour mettre à jour d'autres colonnes de la feuille1. - La feuille3 contient une copie de la colonne 11 de la feuille 1. Quand cette colonne est modifié, l'Event worksheet_calculate() est ensuite utilisé pour mettre à jour d'autres colonnes de la feuille1. - Et ainsi de suite ... Le problème est que Wroksheet_Calculate de la feuille2 est parfois appelée avant Worksheet_change, ce qui pose le problème que l'adresse de la dernière cellule modifiée n'a pas été mise à jour. J'espère que c'est un peu plus clair ... je pourrais tout mettre dans worksheet_Change mais l'Event serait appelé pour les saisies dans toutes les colonnes. |
|
|
|
|
|
![]() |
||
Comment régler la priorité des événements ?
|
||
| Outils de la discussion | |
|
|