OVH Cloud OVH Cloud

Avec la cellule

18 réponses
Avatar
Alpha
Bonjour,
1
je souhaite lancer une proc lorsque je clique dans une place de cellule de
A2:A10
2
je souhaite lancer une proc lorsque je quitte une cellule de A2:A10

Merci à tous
Alpha

8 réponses

1 2
Avatar
Alpha
Merci beaucoup pour cette très grande gentillesse et compétence.
Alpha

"Michel Gaboly" a écrit dans le message de news:

Re Alpha,

"a2:a10" et pas "b2:b10" en principe ici, ;-))

Intersect permet de tester l'itersection entre Target, la variable
stockant la plage sélectionnée lors de l'événement SelectionChange
et la plage indiquée.

Si l'intersection est vide (aucune cellule de la plage indiquée dans),
l'intersection, Intersect renvoie Nothing

Par conséquent,

If Not Intersect ... is Nothing Then

permet de s'assurer que la sélection comporte au moins une des
cellules de la plage testée.

NB - Private Sub Worksheet_SelectionChange(ByVal Target As Range)
est la syntaxe par défaut , qui utilise Target comme nom de variable,
mais tu peux remplacer Target par ce que tu veux :

Private Sub Worksheet_SelectionChange(ByVal MaPlage As Range)



Une petite précision ?
Puis-je avoir une explication sur cette phrase
If Not Intersect(Target, Range("b2:b10")) Is Nothing Then
Merci
Alpha

"Philippe.R" a écrit dans le message de news:

C'était vraiment avec plaisir Alpha !
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Alpha" a écrit dans le message de
news:

Merci beaucoup Philippe, c'est très bien également.
Alpha

"Philippe.R" a écrit dans le message de
news:





Bonjour Alpha,
En essayant de tenir compte des observations de mes Maîtres, je
propose :




Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("a2:a10")) Is Nothing Then
MsgBox "Tiens, la plage !" 'ta procédure 1 à la place du
message



Else
MsgBox "Oh, la belle mère !" 'ta procédure 2 à la place du
message





End If
End Sub

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Alpha" a écrit dans le message de
news:%

Bonjour,
1
je souhaite lancer une proc lorsque je clique dans une place de
cellule




de
A2:A10
2
je souhaite lancer une proc lorsque je quitte une cellule de
A2:A10







Merci à tous
Alpha















--
Cordialement,

Michel Gaboly
http://www.gaboly.com









Avatar
Alpha
Euh, c'est encore moi,
je désire obliger l'utilisateur à cliquer uniquement dans la cellule A1
sinon
de toutes façons c'est la cellule A1 qui est sélectionnée.
Merci
Alpha

"Philippe.R" a écrit dans le message de news:

C'était vraiment avec plaisir Alpha !
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Alpha" a écrit dans le message de
news:

Merci beaucoup Philippe, c'est très bien également.
Alpha

"Philippe.R" a écrit dans le message de news:

Bonjour Alpha,
En essayant de tenir compte des observations de mes Maîtres, je
propose :




Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("a2:a10")) Is Nothing Then
MsgBox "Tiens, la plage !" 'ta procédure 1 à la place du
message



Else
MsgBox "Oh, la belle mère !" 'ta procédure 2 à la place du message
End If
End Sub

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Alpha" a écrit dans le message de
news:%

Bonjour,
1
je souhaite lancer une proc lorsque je clique dans une place de
cellule




de
A2:A10
2
je souhaite lancer une proc lorsque je quitte une cellule de A2:A10

Merci à tous
Alpha

















Avatar
Michel Gaboly
Re,

Voilà :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("A1").Select
End Sub


Euh, c'est encore moi,
je désire obliger l'utilisateur à cliquer uniquement dans la cellule A1
sinon
de toutes façons c'est la cellule A1 qui est sélectionnée.
Merci
Alpha

"Philippe.R" a écrit dans le message de news:

C'était vraiment avec plaisir Alpha !
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Alpha" a écrit dans le message de
news:

Merci beaucoup Philippe, c'est très bien également.
Alpha

"Philippe.R" a écrit dans le message de news:

Bonjour Alpha,
En essayant de tenir compte des observations de mes Maîtres, je
propose :




Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("a2:a10")) Is Nothing Then
MsgBox "Tiens, la plage !" 'ta procédure 1 à la place du
message



Else
MsgBox "Oh, la belle mère !" 'ta procédure 2 à la place du message
End If
End Sub

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Alpha" a écrit dans le message de
news:%

Bonjour,
1
je souhaite lancer une proc lorsque je clique dans une place de
cellule




de
A2:A10
2
je souhaite lancer une proc lorsque je quitte une cellule de A2:A10

Merci à tous
Alpha















--
Cordialement,

Michel Gaboly
http://www.gaboly.com





Avatar
Philippe.R
Re,
Le code ci dessous le fait

Private Sub Worksheet_SelectionChange(ByVal taGada As Range)
Range("a1").Select
End Sub

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Alpha" a écrit dans le message de news:e$
Euh, c'est encore moi,
je désire obliger l'utilisateur à cliquer uniquement dans la cellule A1
sinon
de toutes façons c'est la cellule A1 qui est sélectionnée.
Merci
Alpha

"Philippe.R" a écrit dans le message de news:

C'était vraiment avec plaisir Alpha !
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Alpha" a écrit dans le message de
news:

Merci beaucoup Philippe, c'est très bien également.
Alpha

"Philippe.R" a écrit dans le message de news:

Bonjour Alpha,
En essayant de tenir compte des observations de mes Maîtres, je
propose :




Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("a2:a10")) Is Nothing Then
MsgBox "Tiens, la plage !" 'ta procédure 1 à la place du
message



Else
MsgBox "Oh, la belle mère !" 'ta procédure 2 à la place du message
End If
End Sub

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Alpha" a écrit dans le message de
news:%

Bonjour,
1
je souhaite lancer une proc lorsque je clique dans une place de
cellule




de
A2:A10
2
je souhaite lancer une proc lorsque je quitte une cellule de A2:A10

Merci à tous
Alpha





















Avatar
Michel Gaboly
Re,

Excuse-moi, c'était dadda, hier à 22h28, heure de Paris.

J'ai confondu, car lui aussi parlait de déchencher une macro en cliquant
dans une cellule, et c'est cela que j'avais retenu ;-))


Bonjour Michel, je pense qu'il y à erreur, hier soir, je n'ai pas Posté de
questions, cela dit ta proposition est intéressante.
Merci
Alpha

"Michel Gaboly" a écrit dans le message de news:

Bonjour Alpha,

Je t'avais proposoé hier soir, les événements BeforeDoubleClick ou
BeforeRightClick, car SelectionChange est moins précis : si tu
sélectionnes la colonne A, ou si t sélectionnes la plage A5:H12 en
ayant cliqué en H12 et étendu la séletion, ... le Intersect renverra
True, sans qu'ait eu lieu un clic dans lune des cellules concernées.

Si tu veux repérer la sortie de A1:A10 ("quand je quitte"), je te
propose d'utiliser un nom pour stocker l'emplacement du double clic
précédent, ce qui permet :

Double clic dans une cellule de la plage A1:A10 --> Macro1

Double clic ailleurs ; si le double clic précédent était en A1:A10,
--> Macro2. Si le double clic précédent était déjà hors de A1:A10,
pas de traitement.

Avec BeforeDoubleClick (Mais si SelectionChange te suffit, l'adap-
tation est aisée). ;-))

Pour le double Clic :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range,
Cancel As Boolean)

Dim a As Range
Debug.Print ActiveSheet.[Lieu]
If Not Intersect(Range("A1:A10"), Target) Is Nothing Then
ActiveSheet.Names.Add "Lieu", "Dedans"
Macro1
Else
' Test lieu double clic précédent
If ActiveSheet.[Lieu] = "Dedans" Then
Macro2
End If
ActiveSheet.Names.Add "Lieu", "Dehors"
End If
End Sub

Private Sub Macro1()
MsgBox 1
End Sub

Private Sub Macro2()
MsgBox 2
End Sub



Bonjour,
1
je souhaite lancer une proc lorsque je clique dans une place de cellule
de


A2:A10
2
je souhaite lancer une proc lorsque je quitte une cellule de A2:A10

Merci à tous
Alpha


--
Cordialement,

Michel Gaboly
http://www.gaboly.com





--
Cordialement,

Michel Gaboly
http://www.gaboly.com



Avatar
Michel Gaboly
De rien, c'est avec plaisir ;-))


Merci beaucoup pour cette très grande gentillesse et compétence.
Alpha

"Michel Gaboly" a écrit dans le message de news:

Re Alpha,

"a2:a10" et pas "b2:b10" en principe ici, ;-))

Intersect permet de tester l'itersection entre Target, la variable
stockant la plage sélectionnée lors de l'événement SelectionChange
et la plage indiquée.

Si l'intersection est vide (aucune cellule de la plage indiquée dans),
l'intersection, Intersect renvoie Nothing

Par conséquent,

If Not Intersect ... is Nothing Then

permet de s'assurer que la sélection comporte au moins une des
cellules de la plage testée.

NB - Private Sub Worksheet_SelectionChange(ByVal Target As Range)
est la syntaxe par défaut , qui utilise Target comme nom de variable,
mais tu peux remplacer Target par ce que tu veux :

Private Sub Worksheet_SelectionChange(ByVal MaPlage As Range)



Une petite précision ?
Puis-je avoir une explication sur cette phrase
If Not Intersect(Target, Range("b2:b10")) Is Nothing Then
Merci
Alpha

"Philippe.R" a écrit dans le message de news:

C'était vraiment avec plaisir Alpha !
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Alpha" a écrit dans le message de
news:

Merci beaucoup Philippe, c'est très bien également.
Alpha

"Philippe.R" a écrit dans le message de
news:





Bonjour Alpha,
En essayant de tenir compte des observations de mes Maîtres, je
propose :




Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("a2:a10")) Is Nothing Then
MsgBox "Tiens, la plage !" 'ta procédure 1 à la place du
message



Else
MsgBox "Oh, la belle mère !" 'ta procédure 2 à la place du
message





End If
End Sub

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Alpha" a écrit dans le message de
news:%

Bonjour,
1
je souhaite lancer une proc lorsque je clique dans une place de
cellule




de
A2:A10
2
je souhaite lancer une proc lorsque je quitte une cellule de
A2:A10







Merci à tous
Alpha















--
Cordialement,

Michel Gaboly
http://www.gaboly.com





--
Cordialement,

Michel Gaboly
http://www.gaboly.com







Avatar
Alpha
Merci encore beaucoup,
Alpha

"Philippe.R" a écrit dans le message de news:

Re,
Le code ci dessous le fait

Private Sub Worksheet_SelectionChange(ByVal taGada As Range)
Range("a1").Select
End Sub

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Alpha" a écrit dans le message de
news:e$

Euh, c'est encore moi,
je désire obliger l'utilisateur à cliquer uniquement dans la cellule A1
sinon
de toutes façons c'est la cellule A1 qui est sélectionnée.
Merci
Alpha

"Philippe.R" a écrit dans le message de news:

C'était vraiment avec plaisir Alpha !
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Alpha" a écrit dans le message de
news:

Merci beaucoup Philippe, c'est très bien également.
Alpha

"Philippe.R" a écrit dans le message de
news:





Bonjour Alpha,
En essayant de tenir compte des observations de mes Maîtres, je
propose :




Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("a2:a10")) Is Nothing Then
MsgBox "Tiens, la plage !" 'ta procédure 1 à la place du
message



Else
MsgBox "Oh, la belle mère !" 'ta procédure 2 à la place du
message





End If
End Sub

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Alpha" a écrit dans le message de
news:%

Bonjour,
1
je souhaite lancer une proc lorsque je clique dans une place de
cellule




de
A2:A10
2
je souhaite lancer une proc lorsque je quitte une cellule de
A2:A10







Merci à tous
Alpha

























Avatar
Alpha
Merci beaucoup Michel
Alpha

"Michel Gaboly" a écrit dans le message de news:

Re,

Voilà :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("A1").Select
End Sub


Euh, c'est encore moi,
je désire obliger l'utilisateur à cliquer uniquement dans la cellule A1
sinon
de toutes façons c'est la cellule A1 qui est sélectionnée.
Merci
Alpha

"Philippe.R" a écrit dans le message de news:

C'était vraiment avec plaisir Alpha !
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Alpha" a écrit dans le message de
news:

Merci beaucoup Philippe, c'est très bien également.
Alpha

"Philippe.R" a écrit dans le message de
news:





Bonjour Alpha,
En essayant de tenir compte des observations de mes Maîtres, je
propose :




Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("a2:a10")) Is Nothing Then
MsgBox "Tiens, la plage !" 'ta procédure 1 à la place du
message



Else
MsgBox "Oh, la belle mère !" 'ta procédure 2 à la place du
message





End If
End Sub

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Alpha" a écrit dans le message de
news:%

Bonjour,
1
je souhaite lancer une proc lorsque je clique dans une place de
cellule




de
A2:A10
2
je souhaite lancer une proc lorsque je quitte une cellule de
A2:A10







Merci à tous
Alpha















--
Cordialement,

Michel Gaboly
http://www.gaboly.com









1 2