Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 03/02/2010, 22h44   #1
Invité de passage
 
Nom : Fabrice Malnoy
Date d'inscription: février 2010
Messages: 3
Par défaut Comment régler la priorité des événements ?

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 ?
leonberg30 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/02/2010, 23h08   #2
Membre expérimenté
 
Date d'inscription: juin 2006
Localisation: Saint Thois
Messages: 516
Par défaut

Salut, à consulter http://www.cpearson.com/EXCEL/Events.aspx
kiki29 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 04/02/2010, 09h17   #3
Invité de passage
 
Nom : Fabrice Malnoy
Date d'inscription: février 2010
Messages: 3
Par défaut

Citation:
Envoyé par kiki29 Voir le message
Bonjour,

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 ??
leonberg30 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 04/02/2010, 10h36   #4
Membre Expert
 
Avatar de Fvandermeulen
 
Nom : Frédéric Vandermeulen
Date d'inscription: juillet 2007
Localisation: Bruxelles
Âge: 34
Messages: 1 414
Par défaut

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
Et réactive en fin de code avec
Code :
Application.enableEvents = true 'Empêche les évènements
Ce qui devrait lancer l'évènement lié au Calcul

A+
__________________
N'oubliez pas le si votre problème est solutionné.
Fvandermeulen est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 04/02/2010, 14h02   #5
Invité de passage
 
Nom : Fabrice Malnoy
Date d'inscription: février 2010
Messages: 3
Par défaut

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.
leonberg30 est déconnecté   Envoyer un message privé Réponse avec citation
NEWS EXCELF.A.Q EXCELTUTORIELS EXCELSOURCES EXCELOUTILS EXCELLIVRES EXCELOFFICE 2010

Réponse Proposer ce sujet en actualité

Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non



Fuseau horaire GMT +1. Il est actuellement 11h35.


Vos questions techniques : forum d'entraide Excel - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.