Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA gestion evenementielle

2 réponses
Avatar
Toto
Bonjour,
Je souhaite réaliser une macro qui se déclenche lorsqu'une cellule bien
précise (A2) d"une feuille Excel est modifiée.
Pour ce faire, utilise la commande VBA : Worksheet_Change et mon programme
se présente de la façon suivante :

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$A$2" And Target.Count = 1 Then
Target = Application.Run("MaMacro")
End If
Application.EnableEvents = True
End Sub

Cette macro fonctionne très bien si la cellule A2 se trouve modifiée :
- par une saisie au clavier
- un coller via le menu Edition/Coller
- Ctrl + V
Par contre elle bugue lorsqu'un coller est réalisé par un clic droit de la
souris (Plantage Excel).
Je pense que le clic droit (événement en VBA) doit y être pour quelquechose
(apparemment Application.EnableEvents ne change rien à l'affaire).

Merci par avance à ceux qui pourraient m'éclairer
Cdlt

Gaston

2 réponses

Avatar
Daniel.C
Bonjour.
J'ai utilisé ton code dans classeur neuf sans problème. La problème vient
peut-être d'une autre macro. Poste l'ensemble de ton code, si ce n'est pas
trop volumineux. Est-ce qu'il y a un message avec le plantage Excel ?
Cordialement.
Daniel
"Toto" a écrit dans le message de news:
487c761a$0$856$
Bonjour,
Je souhaite réaliser une macro qui se déclenche lorsqu'une cellule bien
précise (A2) d"une feuille Excel est modifiée.
Pour ce faire, utilise la commande VBA : Worksheet_Change et mon programme
se présente de la façon suivante :

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$A$2" And Target.Count = 1 Then
Target = Application.Run("MaMacro")
End If
Application.EnableEvents = True
End Sub

Cette macro fonctionne très bien si la cellule A2 se trouve modifiée :
- par une saisie au clavier
- un coller via le menu Edition/Coller
- Ctrl + V
Par contre elle bugue lorsqu'un coller est réalisé par un clic droit de la
souris (Plantage Excel).
Je pense que le clic droit (événement en VBA) doit y être pour
quelquechose (apparemment Application.EnableEvents ne change rien à
l'affaire).

Merci par avance à ceux qui pourraient m'éclairer
Cdlt

Gaston



Avatar
Toto
Bonjour et merci Daniel pour m'avoir consacré un peu de ton temps.
Le plantage vient effectivement de la macro appelée. Le problème était du à
une instruction (Application.ScreenUpdating = false) non remise à True.
Lancée seule, cette macro s'executait bien mais via le Worksheet_Change, ce
que je prenais pour un plantage d'Excel était en fait l'écran du PC non
réactivé.
Ouf....
Cdlt
gaston

"Daniel.C" a écrit dans le message de news:

Bonjour.
J'ai utilisé ton code dans classeur neuf sans problème. La problème vient
peut-être d'une autre macro. Poste l'ensemble de ton code, si ce n'est pas
trop volumineux. Est-ce qu'il y a un message avec le plantage Excel ?
Cordialement.
Daniel
"Toto" a écrit dans le message de news:
487c761a$0$856$
Bonjour,
Je souhaite réaliser une macro qui se déclenche lorsqu'une cellule bien
précise (A2) d"une feuille Excel est modifiée.
Pour ce faire, utilise la commande VBA : Worksheet_Change et mon
programme se présente de la façon suivante :

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$A$2" And Target.Count = 1 Then
Target = Application.Run("MaMacro")
End If
Application.EnableEvents = True
End Sub

Cette macro fonctionne très bien si la cellule A2 se trouve modifiée :
- par une saisie au clavier
- un coller via le menu Edition/Coller
- Ctrl + V
Par contre elle bugue lorsqu'un coller est réalisé par un clic droit de
la souris (Plantage Excel).
Je pense que le clic droit (événement en VBA) doit y être pour
quelquechose (apparemment Application.EnableEvents ne change rien à
l'affaire).

Merci par avance à ceux qui pourraient m'éclairer
Cdlt

Gaston