Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

clic pour changer la cellule

5 réponses
Avatar
Greg
Bonjour,

Ce post est un peu la suite de celui que j'ai posté il y a quelques jours.
Mais ma demande est plus précise :

Je voudrais qu'une cellule fasse apparaitre un :

"." au premier clic dans la cellule
".." si "." est déjà présent dans la cellule
"..." si ".." est déjà présent dans la cellule
Cellule vide si "..." déjà présent dans la cellule

L'idéal serait un clic gauche. A défaut, un double clic ou un clic droit
pourraient fonctionner.

Merci à vous.

Greg

5 réponses

Avatar
MichD
Bonjour,

à copier dans le module feuille où l'action se déroule,
Tu adaptes la plage A1:A10 pour la plage de ton choix.

'------------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim V As String, Rg As Range
Set Rg = Intersect(Target, Range("A1:A10"))
If Not Rg Is Nothing Then
For Each c In Rg
V = Application.Substitute(Target, ".", "")
If V = "" Then
Select Case Len(Target)
Case 0, 1, 2
c.Value = c.Value & "."
Case 3
c.Value = ""
Case Else
c.Value = ""
End Select
End If
Next
End If
End Sub
'------------------------------------



MichD
--------------------------------------------
"Greg" a écrit dans le message de groupe de discussion : ill4j7$1qj$

Bonjour,

Ce post est un peu la suite de celui que j'ai posté il y a quelques jours.
Mais ma demande est plus précise :

Je voudrais qu'une cellule fasse apparaitre un :

"." au premier clic dans la cellule
".." si "." est déjà présent dans la cellule
"..." si ".." est déjà présent dans la cellule
Cellule vide si "..." déjà présent dans la cellule

L'idéal serait un clic gauche. A défaut, un double clic ou un clic droit
pourraient fonctionner.

Merci à vous.

Greg
Avatar
Greg
Merci Mich pour cette réponse!

Le seul souci de cette méthode c'est que je ne peux pas cliquer plusieurs
fois sur une même cellule pour faire apparaître "..." par exemple en 3
clics. La seule solution que j'ai trouvé est de remplacer le début du code
par

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As
Boolean)

Ce qui me pose un autre (tout petit) problème, c'est l'apparition de la
fenêtre contextuelle. En effet, je dois cocher un nombre important de
cellules sur une même ligne et la fenêtre me cache la vue si je puis dire...

C'est quand même très bien mais, si vous aviez une idée pour améliorer
encore, ce serait l'Amérique..... (Euh, je ne suis pas sûr que cette
expression soit encore de rigueur ;-))

à bientôt

Greg

"MichD" a écrit dans le message de groupe de
discussion : ill6eg$6fg$
Bonjour,

à copier dans le module feuille où l'action se déroule,
Tu adaptes la plage A1:A10 pour la plage de ton choix.

'------------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim V As String, Rg As Range
Set Rg = Intersect(Target, Range("A1:A10"))
If Not Rg Is Nothing Then
For Each c In Rg
V = Application.Substitute(Target, ".", "")
If V = "" Then
Select Case Len(Target)
Case 0, 1, 2
c.Value = c.Value & "."
Case 3
c.Value = ""
Case Else
c.Value = ""
End Select
End If
Next
End If
End Sub
'------------------------------------



MichD
--------------------------------------------
"Greg" a écrit dans le message de groupe de discussion :
ill4j7$1qj$

Bonjour,

Ce post est un peu la suite de celui que j'ai posté il y a quelques jours.
Mais ma demande est plus précise :

Je voudrais qu'une cellule fasse apparaitre un :

"." au premier clic dans la cellule
".." si "." est déjà présent dans la cellule
"..." si ".." est déjà présent dans la cellule
Cellule vide si "..." déjà présent dans la cellule

L'idéal serait un clic gauche. A défaut, un double clic ou un clic droit
pourraient fonctionner.

Merci à vous.

Greg

Avatar
MichD
Comme ceci :


Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim V As String, Rg As Range
Set Rg = Intersect(Target, Range("A1:A10"))
If Not Rg Is Nothing Then
Cancel = True
For Each c In Rg
V = Application.Substitute(Target, ".", "")
If V = "" Then
Select Case Len(Target)
Case 0, 1, 2
c.Value = c.Value & "."
Case 3
c.Value = ""
Case Else
c.Value = ""
End Select
End If
Next
End If
End Sub



MichD
--------------------------------------------
Avatar
LSteph
Bonsoir,

pour éviter cette fenêtre Cancel=true

--
LSteph

Greg a écrit :
Merci Mich pour cette r�ponse!

Le seul souci de cette m�thode c'est que je ne peux pas cliquer p lusieurs
fois sur une m�me cellule pour faire appara�tre "..." par exemple en 3
clics. La seule solution que j'ai trouv� est de remplacer le dï ¿½but du code
par

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As
Boolean)

Ce qui me pose un autre (tout petit) probl�me, c'est l'apparition de la
fen�tre contextuelle. En effet, je dois cocher un nombre importan t de
cellules sur une m�me ligne et la fen�tre me cache la vue si je puis dire...

C'est quand m�me tr�s bien mais, si vous aviez une idï ¿½e pour am�liorer
encore, ce serait l'Am�rique..... (Euh, je ne suis pas s� r que cette
expression soit encore de rigueur ;-))

� bient�t

Greg

"MichD" a �crit dans le message de groupe de
discussion : ill6eg$6fg$
> Bonjour,
>
> � copier dans le module feuille o� l'action se dï¿ ½roule,
> Tu adaptes la plage A1:A10 pour la plage de ton choix.
>
> '------------------------------------
> Private Sub Worksheet_SelectionChange(ByVal Target As Range)
> Dim V As String, Rg As Range
> Set Rg = Intersect(Target, Range("A1:A10"))
> If Not Rg Is Nothing Then
> For Each c In Rg
> V = Application.Substitute(Target, ".", "")
> If V = "" Then
> Select Case Len(Target)
> Case 0, 1, 2
> c.Value = c.Value & "."
> Case 3
> c.Value = ""
> Case Else
> c.Value = ""
> End Select
> End If
> Next
> End If
> End Sub
> '------------------------------------
>
>
>
> MichD
> --------------------------------------------
> "Greg" a �crit dans le message de groupe de discussion :
> ill4j7$1qj$
>
> Bonjour,
>
> Ce post est un peu la suite de celui que j'ai post� il y a quel ques jours.
> Mais ma demande est plus pr�cise :
>
> Je voudrais qu'une cellule fasse apparaitre un :
>
> "." au premier clic dans la cellule
> ".." si "." est d�j� pr�sent dans la cellule
> "..." si ".." est d�j� pr�sent dans la cellule
> Cellule vide si "..." d�j� pr�sent dans la cell ule
>
> L'id�al serait un clic gauche. A d�faut, un double clic ou un clic droit
> pourraient fonctionner.
>
> Merci � vous.
>
> Greg
>
Avatar
Greg
Bonjour Steph,

J'ai essayé à tout hasard de l'ajouter à la fin du code et miracle... merci!

Greg


"LSteph" a écrit dans le message de groupe de
discussion :

Bonsoir,

pour éviter cette fenêtre Cancel=true

--
LSteph

Greg a écrit :
Merci Mich pour cette r�ponse!

Le seul souci de cette m�thode c'est que je ne peux pas cliquer plusieurs
fois sur une m�me cellule pour faire appara�tre "..." par exemple en 3
clics. La seule solution que j'ai trouv� est de remplacer le d�but du
code
par

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As
Boolean)

Ce qui me pose un autre (tout petit) probl�me, c'est l'apparition de la
fen�tre contextuelle. En effet, je dois cocher un nombre important de
cellules sur une m�me ligne et la fen�tre me cache la vue si je puis
dire...

C'est quand m�me tr�s bien mais, si vous aviez une id�e pour am�liorer
encore, ce serait l'Am�rique..... (Euh, je ne suis pas s�r que cette
expression soit encore de rigueur ;-))

� bient�t

Greg

"MichD" a �crit dans le message de groupe de
discussion : ill6eg$6fg$
> Bonjour,
>
> � copier dans le module feuille o� l'action se d�roule,
> Tu adaptes la plage A1:A10 pour la plage de ton choix.
>
> '------------------------------------
> Private Sub Worksheet_SelectionChange(ByVal Target As Range)
> Dim V As String, Rg As Range
> Set Rg = Intersect(Target, Range("A1:A10"))
> If Not Rg Is Nothing Then
> For Each c In Rg
> V = Application.Substitute(Target, ".", "")
> If V = "" Then
> Select Case Len(Target)
> Case 0, 1, 2
> c.Value = c.Value & "."
> Case 3
> c.Value = ""
> Case Else
> c.Value = ""
> End Select
> End If
> Next
> End If
> End Sub
> '------------------------------------
>
>
>
> MichD
> --------------------------------------------
> "Greg" a �crit dans le message de groupe de discussion :
> ill4j7$1qj$
>
> Bonjour,
>
> Ce post est un peu la suite de celui que j'ai post� il y a quelques
> jours.
> Mais ma demande est plus pr�cise :
>
> Je voudrais qu'une cellule fasse apparaitre un :
>
> "." au premier clic dans la cellule
> ".." si "." est d�j� pr�sent dans la cellule
> "..." si ".." est d�j� pr�sent dans la cellule
> Cellule vide si "..." d�j� pr�sent dans la cellule
>
> L'id�al serait un clic gauche. A d�faut, un double clic ou un clic
> droit
> pourraient fonctionner.
>
> Merci � vous.
>
> Greg
>