clic pour changer la cellule

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichD
Le #23203911
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
Greg
Le #23204251
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" 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

MichD
Le #23204351
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
--------------------------------------------
LSteph
Le #23204341
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" 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
>
Greg
Le #23204321
Bonjour Steph,

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

Greg


"LSteph" 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" 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
>
Publicité
Poster une réponse
Anonyme