Re: Macro évenementielle sur clic cellule ? => Exemples d'Intersect Method
Bonsoir Arnaud, PmFontaine, le Forum
Je pense que les macros évènementielles de Feuilles :
=> Worksheet_SelectionChange
=> Worksheet_BeforeDoubleClick
=> Worksheet_BeforeRightClick (etc..etc)
Fonctionnaient déjà sous Excel 97...
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
Voilà comme çà la méthode Intersect est documentée !
Bonne Soirée
@+Thierry