Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro évenementielle sur clic cellule ?

  • Initiateur de la discussion pmfontaine
  • Date de début
P

pmfontaine

Guest
Bonjour a tous,
J’ai beau chercher dans le Forum et dans l’aide VBA je ne trouve pas la réponse a mon problème d’aujourd’hui qui est d’exécuter une macro à partir d’un simple clic dans une cellule quelconque d’une colonne.
Style macro événementielle (l’évènement étant un clic dans une cellule quelconque)
Version Excel utilisé = 97
Merci
pmfontaine
 
A

Arnaud

Guest
salut,
je ne peux pas te dire si cela fonctionne sur excel97 vu que je ne l'ai pas.
mais bon il existe cette évenement :

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

End Sub
 
@

@+Thierry

Guest
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, D410, 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
 
@

@+Thierry

Guest
Re: Macro évenementielle sur clic cellule ? => Exemples d'Intersect Method

Ah oui les Rows...

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


Par contre là où çà se corse c'est pour le faire en lignes non contigues...

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

Ouf !! lol

Mais bon on peut faire la même chose aussi comme çà :
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

Enfin un Fil bien cousu !! lol
Bonne Soirée
@+Thierry
 
E

Eric C

Guest
Bonjour le Forum
Re Thierry

Super Génial, encore une fois je l'ai rêvé, Thierry nous l'a dévoilé. Cela faisait longtemps que j'attendais cette petite merveille. Je me contentais de placer une valeur à chaque fois.

Je place le tout à l'abri tout de suite.

Youre are the Greatest Mister Thierry. J'en profite également pour te dire que c'est Impec pour ta version II. Encore merci pour tout ce que tu nous apporte.

@ ++ Eric C
 
P

pmfontaine

Guest
Re: Macro évenementielle sur clic cellule ? => Exemples d'Intersect Method

Merci Arnaud et Thierry pour cette aide qui répond parfaitement à mon problème.
pmfontaine
 
P

Pat5

Guest
Bonsoir tout le monde

Grand merçi pour ce cours vite fait mais tellement complet !!!

Comme dit Eric You're the Greatest Mister Thierry

A+ et bonne soirée

Pat5 ;o)
 
E

Eric C

Guest
Re le Forum
Bonsoir pmfontaine, Arnaud, Thierry & Pat 5

Excusez le "re" de you (Clavier mal entretenu ...Il faut bien un responsable ... lol)

Donc Pat5 merci de la correction.

@ ++ Eric C
 
S

Sylvain

Guest
bonsoir,

un petit raccourci : si vous voulez voir le code d'une feuille rapidement, faites un clic droit sur l'onglet et choisissez visualiser le code.

A+
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…