Signal dans une macro pour shunter les instructions
6 réponses
M.
Bonjour,
j'ai deux macros que je voudrais empêcher de travailler en même temps. La
macro S est activée à la demande par un bouton. L'autre macro C est
activée en permanence (bySelectionChange) et elle ralentit trop S : il
faudrait qu'elle commence par une instruction qui fasse sauter les
instructions qui suivent, dans le cas où S est active. Faut-il mettre un
signal dans une cellule de la feuille (S en D2 si S est active), et
comment écrire tout ça ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
John Fuss
En utilisant application.enableEvents = False tu desctive les evenements (genre:bySelectionChange), si ça te convient n'oublie pas de le rmettre à True !
John
"M." +doo.fr> a écrit dans le message de news:
Bonjour,
j'ai deux macros que je voudrais empêcher de travailler en même temps. La macro S est activée à la demande par un bouton. L'autre macro C est activée en permanence (bySelectionChange) et elle ralentit trop S : il faudrait qu'elle commence par une instruction qui fasse sauter les instructions qui suivent, dans le cas où S est active. Faut-il mettre un signal dans une cellule de la feuille (S en D2 si S est active), et comment écrire tout ça ?
Merci d'avance
Fred
En utilisant
application.enableEvents = False tu desctive les evenements
(genre:bySelectionChange), si ça te convient n'oublie pas de le rmettre à
True !
John
"M." <brochado@wana+doo.fr> a écrit dans le message de
news:epj0uv4j3c2t0nug1b4sfejbamj2p2pgth@4ax.com...
Bonjour,
j'ai deux macros que je voudrais empêcher de travailler en même temps. La
macro S est activée à la demande par un bouton. L'autre macro C est
activée en permanence (bySelectionChange) et elle ralentit trop S : il
faudrait qu'elle commence par une instruction qui fasse sauter les
instructions qui suivent, dans le cas où S est active. Faut-il mettre un
signal dans une cellule de la feuille (S en D2 si S est active), et
comment écrire tout ça ?
En utilisant application.enableEvents = False tu desctive les evenements (genre:bySelectionChange), si ça te convient n'oublie pas de le rmettre à True !
John
"M." +doo.fr> a écrit dans le message de news:
Bonjour,
j'ai deux macros que je voudrais empêcher de travailler en même temps. La macro S est activée à la demande par un bouton. L'autre macro C est activée en permanence (bySelectionChange) et elle ralentit trop S : il faudrait qu'elle commence par une instruction qui fasse sauter les instructions qui suivent, dans le cas où S est active. Faut-il mettre un signal dans une cellule de la feuille (S en D2 si S est active), et comment écrire tout ça ?
Merci d'avance
Fred
M.
"John Fuss" a dit :
application.enableEvents = False tu desctive les evenements
Oui ça convient, merci beaucoup.
Peut-on désactiver sélectivement certains évènements, les évènements internes à la feuille comme selection-change, en laissant actifs les évènements qui sortent de la feuille comme sheet-activate ?
Fred
"John Fuss" <newskob650@yahoo.fr> a dit :
application.enableEvents = False tu desctive les evenements
Oui ça convient, merci beaucoup.
Peut-on désactiver sélectivement certains évènements, les évènements
internes à la feuille comme selection-change, en laissant actifs les
évènements qui sortent de la feuille comme sheet-activate ?
application.enableEvents = False tu desctive les evenements
Oui ça convient, merci beaucoup.
Peut-on désactiver sélectivement certains évènements, les évènements internes à la feuille comme selection-change, en laissant actifs les évènements qui sortent de la feuille comme sheet-activate ?
Fred
John Fuss
Pour ma part, je dirai que 'oui', je ne connais pas de commande VBA qui le propose mais on peut ajouter du code en dynamique à son projet, ce qui peut être utilisé pour ajouter ou retirer la gestion des évenements qui te gènent. Si tu veux je peux te donner la syntaxe pour ajouter du code à ton projet.
John
"M." +doo.fr> a écrit dans le message de news:
"John Fuss" a dit :
application.enableEvents = False tu desctive les evenements
Oui ça convient, merci beaucoup.
Peut-on désactiver sélectivement certains évènements, les évènements internes à la feuille comme selection-change, en laissant actifs les évènements qui sortent de la feuille comme sheet-activate ?
Fred
Pour ma part, je dirai que 'oui', je ne connais pas de commande VBA qui le
propose mais on peut ajouter du code en dynamique à son projet, ce qui peut
être utilisé pour ajouter ou retirer la gestion des évenements qui te
gènent. Si tu veux je peux te donner la syntaxe pour ajouter du code à ton
projet.
John
"M." <brochado@wana+doo.fr> a écrit dans le message de
news:sqgauvgndconov198bnti8gokb6pf0ljpk@4ax.com...
"John Fuss" <newskob650@yahoo.fr> a dit :
application.enableEvents = False tu desctive les evenements
Oui ça convient, merci beaucoup.
Peut-on désactiver sélectivement certains évènements, les évènements
internes à la feuille comme selection-change, en laissant actifs les
évènements qui sortent de la feuille comme sheet-activate ?
Pour ma part, je dirai que 'oui', je ne connais pas de commande VBA qui le propose mais on peut ajouter du code en dynamique à son projet, ce qui peut être utilisé pour ajouter ou retirer la gestion des évenements qui te gènent. Si tu veux je peux te donner la syntaxe pour ajouter du code à ton projet.
John
"M." +doo.fr> a écrit dans le message de news:
"John Fuss" a dit :
application.enableEvents = False tu desctive les evenements
Oui ça convient, merci beaucoup.
Peut-on désactiver sélectivement certains évènements, les évènements internes à la feuille comme selection-change, en laissant actifs les évènements qui sortent de la feuille comme sheet-activate ?
Fred
M.
"John Fuss" a dit :
Si tu veux je peux te donner la syntaxe pour ajouter du code à ton projet.
Oui ça m'intéresse, en fait je voudrais ne pas désactiver SheetActivate ni WorkbookClose (ce que j'ai besoin de désactiver est déclenché par bySelectionChange);
Fred
"John Fuss" <newskob650@yahoo.fr> a dit :
Si tu veux je peux te donner la syntaxe pour ajouter du code à ton
projet.
Oui ça m'intéresse, en fait je voudrais ne pas désactiver SheetActivate ni
WorkbookClose (ce que j'ai besoin de désactiver est déclenché par
bySelectionChange);
Si tu veux je peux te donner la syntaxe pour ajouter du code à ton projet.
Oui ça m'intéresse, en fait je voudrais ne pas désactiver SheetActivate ni WorkbookClose (ce que j'ai besoin de désactiver est déclenché par bySelectionChange);
Fred
John Fuss
J'ai fait une macro complémentaire qui créée un classeur et réalise un traitement dessus. Je voulais pouvoir intercepter l'evenment BeforeClose du classeur. Le bout de code suivant fait cela dans un classeur nommé par la variable 'wb'.
Private Sub AddCodeToWorkbook(wb As String) Dim Code As String
Workbooks(wb).VBProject.VBComponents("ThisWorkbook").CodeModule.AddFromStrin g Code End Sub
Pour l'ajout je pense que AddFromString n'ecrase pas l'axistant mais de toute façon tu devras certainement vider le code complet pour remttre le contenu sans l'evenement.
Mais sinon tu ne peux pas déclarer une variable globale dans un module de type Boolean et quand tu veux ne plus utiliser 'bySelectionChange' tu la met à 'False' et inversement et dans le code de l'evenement 'bySelectionChange' tu fais un test sur cette variable ???
John
Oui ça m'intéresse, en fait je voudrais ne pas désactiver SheetActivate ni WorkbookClose (ce que j'ai besoin de désactiver est déclenché par bySelectionChange);
Fred
J'ai fait une macro complémentaire qui créée un classeur et réalise un
traitement dessus. Je voulais pouvoir intercepter l'evenment BeforeClose du
classeur. Le bout de code suivant fait cela dans un classeur nommé par la
variable 'wb'.
Private Sub AddCodeToWorkbook(wb As String)
Dim Code As String
Workbooks(wb).VBProject.VBComponents("ThisWorkbook").CodeModule.AddFromStrin
g Code
End Sub
Pour l'ajout je pense que AddFromString n'ecrase pas l'axistant mais de
toute façon tu devras certainement vider le code complet pour remttre le
contenu sans l'evenement.
Mais sinon tu ne peux pas déclarer une variable globale dans un module de
type Boolean et quand tu veux ne plus utiliser 'bySelectionChange' tu la met
à 'False' et inversement et dans le code de l'evenement 'bySelectionChange'
tu fais un test sur cette variable ???
John
Oui ça m'intéresse, en fait je voudrais ne pas désactiver SheetActivate ni
WorkbookClose (ce que j'ai besoin de désactiver est déclenché par
bySelectionChange);
J'ai fait une macro complémentaire qui créée un classeur et réalise un traitement dessus. Je voulais pouvoir intercepter l'evenment BeforeClose du classeur. Le bout de code suivant fait cela dans un classeur nommé par la variable 'wb'.
Private Sub AddCodeToWorkbook(wb As String) Dim Code As String
Workbooks(wb).VBProject.VBComponents("ThisWorkbook").CodeModule.AddFromStrin g Code End Sub
Pour l'ajout je pense que AddFromString n'ecrase pas l'axistant mais de toute façon tu devras certainement vider le code complet pour remttre le contenu sans l'evenement.
Mais sinon tu ne peux pas déclarer une variable globale dans un module de type Boolean et quand tu veux ne plus utiliser 'bySelectionChange' tu la met à 'False' et inversement et dans le code de l'evenement 'bySelectionChange' tu fais un test sur cette variable ???
John
Oui ça m'intéresse, en fait je voudrais ne pas désactiver SheetActivate ni WorkbookClose (ce que j'ai besoin de désactiver est déclenché par bySelectionChange);
Fred
M.
"John Fuss" a dit :
Je voulais pouvoir intercepter l'evenment BeforeClose du classeur. Le bout de code suivant fait cela dans un classeur nommé par la variable 'wb'.
Je te remercie de ces informations, que je n'ai pas encore pu trouver le temps d'étudier en détail.
A plus tard
fred
"John Fuss" <newskob650@yahoo.fr> a dit :
Je voulais pouvoir intercepter l'evenment BeforeClose du
classeur. Le bout de code suivant fait cela dans un classeur nommé par la
variable 'wb'.
Je te remercie de ces informations, que je n'ai pas encore pu trouver le
temps d'étudier en détail.