![]() |
|
Forum
|
|
|
#1 (permalink) |
|
Guest
Messages: n/a
|
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 ![]() |
|
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: février 2005
Messages: 158
|
Bonjour,
L'évènement 'Change' de la feuille ('Worksheet') devrait convenir. C'est à dire dès que tu changeras de cellule le code situé dans cet évènement sera appliqué Bon courage Léa |
|
|
|
|
|
#4 (permalink) |
|
XLDnaute Accro
Date d'inscription: février 2005
Messages: 1 159
|
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 |
|
|
|
|
|
#7 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Messages: 3 099
|
Bonjour Léa, Crany, Bernard, le Forum
J'avais fait un long Fil dans le vieux XLD 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 ThenMsgBox '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 |
|
|
|
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|