Gestion d'évènement

  • Initiateur de la discussion Initiateur de la discussion Crany
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

Crany

Guest
Bonjour,

Ne connaissant pas les macro excel, je me suis documenté sur la question mais il reste cependant encore une chose que je ne parviens pas à trouver:

Comment puis-je faire pour mettre en place une gestion d'évènement sur une cellule en particulier? Si c'est possible, quel est le nom de l'évènement changement de valeur de cellule?

Pour clarifier, je souhaite avoir une colone comprenant des cellules qui reagissent au changement de valeur en exécutant le code d'une fonction de mon choix.

Voila, merci de votre aide et dites moi si je n'ai pas été assez clair 🙂
 
Bonjour Crany et Léa


Macro à placer dans le module de la feuille.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Columns('B:B')) Is Nothing Then

'Code d'une fonction de ton choix

End If
End Sub

Dans cet exemple, le code de ton choix sera activé quand la valeur d'une cellule de la colonne B changera de valeur ou sera simplement activée.

Cordialement

CBernardT
 
Re:Gestion d'évènement (Topo Intersect Méthodes)

Bonjour Léa, Crany, Bernard, le Forum

J'avais fait un long Lien supprimé avec différentes méthodes d'Intersect, mais vu que cette question est récurrente, je pense utile de remettre ces infos/didactitielles ici (in Color !) :

Type d'évènements gérés en 'automatiques'

=> Worksheet_SelectionChange
=> Worksheet_BeforeDoubleClick
=> Worksheet_BeforeRightClick (etc..etc)


Ensuite, pour attribuer une action précise en fonction d'une cellule ou d'une plage de cellules (et non toute la feuille) il faut utiliser la Méthode Intersect comme ceci :


Exemple 1) on veut une action quand on Click sur la Cellule 'A1' uniquement :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range('A1')) Is Nothing Then
MsgBox 'Click on ' & Target.Address
End If
End Sub


Exemple 2) on veut une action quand on Click n'importe où dans la colonne 'A' uniquement :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range('A:A')) Is Nothing Then
MsgBox 'Click on ' & Target.Address
End If
End Sub


Exemple 3) on veut une action quand on Click n'importe où dans les colonne 'A' à 'E' uniquement :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range('A:E')) Is Nothing Then
MsgBox 'Click on ' & Target.Address
End If
End Sub


Exemple 4) on veut une action quand on Click n'importe où dans la Plage de 'A1 à A10' uniquement :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range('A1:A10')) Is Nothing Then
MsgBox 'Click on ' & Target.Address
End If
End Sub


Exemple 5) on veut une action quand on Click n'importe où dans plusieurs plages non-adjacentes :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range('A1:A12, D4😀10, D20, D22, D55, E1:E12')) Is Nothing Then
MsgBox 'Click on ' & Target.Address
End If
End Sub


Exemple 6) on veut une action quand on Click n'importe où dans plusieurs colonnes non-contigues :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range('A:A, C:C, E:E')) Is Nothing Then
MsgBox 'Click on ' & Target.Address
End If
End Sub


Exemple 7) on veut une action quand on Click n'importe où dans la ligne 1:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Rows(1)) Is Nothing Then
MsgBox 'Click on ' & Target.Address
End If
End Sub


Exemple 8) on veut une action quand on Click n'importe où dans entre les lignes 1 et 3:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range(Rows(1), Rows(3))) Is Nothing Then
MsgBox 'Click on ' & Target.Address
End If
End Sub


Exemple 9) on veut une action quand on Click n'importe où dans dans les lignes 1 ou 3 uniquement (pas la 2) :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range(Rows(1), Rows(3))) Is Nothing Then
If Application.Intersect(Target, Rows(2)) Is Nothing Then
MsgBox 'Click on ' & Target.Address
End If
End If
End Sub


Exemple 9Bis) Variante plus simple on veut une action quand on Click n'importe où dans dans les lignes 1 ou 3 uniquement (pas la 2) :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range('A1:IV1, A3:IV3')) Is Nothing Then
MsgBox 'Click on ' & Target.Address
End If
End Sub

On peut encore en trouver d'autres, mais je pense que celles ci sont les plus significatives...

Bon Après Midi
@+Thierry

Message édité par: _Thierry, à: 25/02/2005 14:52
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
0
Affichages
83
Réponses
5
Affichages
460
Réponses
4
Affichages
516
Retour