OVH Cloud OVH Cloud

Évènement déclencheur d'une procédure

3 réponses
Avatar
Stéphan DuQuébec
Bonjour à vous,

J'aimerais bien savoir s'il est possible d'utiliser un évènement qui soit
plus spécifique que WorkSheet_Change pour déclencher une procédure VBA suite
à une validation apportée à des cellules modifiées.

Je m'explique.

J'ai quelques procédures liées à une évènement WorkSheet_Change. Ça commence
à être lourd pour le traitement puisque j'ai beaucoup de données. Dans
l'évènement comme tel, est-il possible de restreindre à une plage de cellules
ou à une plage adressée ?

Style:
Private Sub Cells(A1:C10)_Change....
Ma Macro

ou

Private Sub MaRégion_Change....
Ma Macro

Je consulte le catalogue d'évènements mais je n'arrive à aucun résultat.....

Merci à ceux/celles qui auront un tuyau.

3 réponses

Avatar
papou
Bonjour
Regarde du côté de Intersect :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:C10")) Is Nothing Then
MsgBox "Valeurs changées dans la plage A1 à C10"
End If
End Sub

Cordialement
Pascal

"Stéphan DuQuébec" a écrit dans le
message de news:

Bonjour à vous,

J'aimerais bien savoir s'il est possible d'utiliser un évènement qui soit
plus spécifique que WorkSheet_Change pour déclencher une procédure VBA
suite
à une validation apportée à des cellules modifiées.

Je m'explique.

J'ai quelques procédures liées à une évènement WorkSheet_Change. Ça
commence
à être lourd pour le traitement puisque j'ai beaucoup de données. Dans
l'évènement comme tel, est-il possible de restreindre à une plage de
cellules
ou à une plage adressée ?

Style:
Private Sub Cells(A1:C10)_Change....
Ma Macro

ou

Private Sub MaRégion_Change....
Ma Macro

Je consulte le catalogue d'évènements mais je n'arrive à aucun
résultat.....

Merci à ceux/celles qui auront un tuyau.



Avatar
Michel41
Bonjour

Ma méthode (pas obligatoirement la meilleure)

A partir de "Target" je calcule la ligne, la colonne et la feuille de
l'évènement mais mon listing commence avant par :
If C then Cúlse:exit sub (voir après)

Ensuite je ventile à d'autres macros avec "select case"
selon ces 3 valeurs, en passant les variables

Quand une de ces macros modifie une cellule, le programme peut "tourner en
bourrique", aussi avant un changement dans une cellule j'écris C=True

PS: il existe aussi :

Worksheet_SelectionChange(ByVal Target As Range)

Application.EnableEvents = False/true
mais je ne suis pas très satisfait de cette fonction !

@+


"Stéphan DuQuébec" a écrit dans le
message de news:

Bonjour à vous,

J'aimerais bien savoir s'il est possible d'utiliser un évènement qui soit
plus spécifique que WorkSheet_Change pour déclencher une procédure VBA
suite
à une validation apportée à des cellules modifiées.

Je m'explique.

J'ai quelques procédures liées à une évènement WorkSheet_Change. Ça
commence
à être lourd pour le traitement puisque j'ai beaucoup de données. Dans
l'évènement comme tel, est-il possible de restreindre à une plage de
cellules
ou à une plage adressée ?

Style:
Private Sub Cells(A1:C10)_Change....
Ma Macro

ou

Private Sub MaRégion_Change....
Ma Macro

Je consulte le catalogue d'évènements mais je n'arrive à aucun
résultat.....

Merci à ceux/celles qui auront un tuyau.



Avatar
Stéphan DuQuébec
Merci à vous 2,

Ce sont là 2 façons bien intéressantes.

Bonne journée/soirée.


Bonjour

Ma méthode (pas obligatoirement la meilleure)

A partir de "Target" je calcule la ligne, la colonne et la feuille de
l'évènement mais mon listing commence avant par :
If C then Cúlse:exit sub (voir après)

Ensuite je ventile à d'autres macros avec "select case"
selon ces 3 valeurs, en passant les variables

Quand une de ces macros modifie une cellule, le programme peut "tourner en
bourrique", aussi avant un changement dans une cellule j'écris C=True

PS: il existe aussi :

Worksheet_SelectionChange(ByVal Target As Range)

Application.EnableEvents = False/true
mais je ne suis pas très satisfait de cette fonction !

@+


"Stéphan DuQuébec" a écrit dans le
message de news:

Bonjour à vous,

J'aimerais bien savoir s'il est possible d'utiliser un évènement qui soit
plus spécifique que WorkSheet_Change pour déclencher une procédure VBA
suite
à une validation apportée à des cellules modifiées.

Je m'explique.

J'ai quelques procédures liées à une évènement WorkSheet_Change. Ça
commence
à être lourd pour le traitement puisque j'ai beaucoup de données. Dans
l'évènement comme tel, est-il possible de restreindre à une plage de
cellules
ou à une plage adressée ?

Style:
Private Sub Cells(A1:C10)_Change....
Ma Macro

ou

Private Sub MaRégion_Change....
Ma Macro

Je consulte le catalogue d'évènements mais je n'arrive à aucun
résultat.....

Merci à ceux/celles qui auront un tuyau.