Manniaque des raccourcis

Le
milloche
Bonjour
J'utilise très souvent ctrl+point-virgule puis espace puis ctrl+deux-points pour entrer
NOW value dans certaines cellules (le résultat n'est pas volatile et c'est bien comme çà).
Très pratique, cela marche même si la cellule était formatée autrement qu'en date (elle
accueille parfois temporairement des %ages avant de devenir date et heures). Elle s'adapte
toute seule.
Je voudrais encore simplifier, c'est à dire ne taper qu' un "x" dans cette cellule et dans
ce cas que Excel fasse ce travail à ma place.
Comme toujours, l'idée mais ne sais pas faire pratiquement.
Évènementielle, je pense, mais je plane encore.
Et ceci ne doit pouvoir se faire que en colonne B ou E.
Bon courage.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
garnote
Le #18437171
Bonjour,

Un exemple :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And Target.Value = "x" Then Target.Value = Now
End Sub

Ceci te convient-il ?

Serge

"milloche"
Bonjour
J'utilise très souvent ctrl+point-virgule puis espace puis ctrl+deux-points pour entrer NOW value dans certaines cellules
(le résultat n'est pas volatile et c'est bien comme çà). Très pratique, cela marche même si la cellule était formatée
autrement qu'en date (elle accueille parfois temporairement des %ages avant de devenir date et heures). Elle s'adapte toute
seule.
Je voudrais encore simplifier, c'est à dire ne taper qu' un "x" dans cette cellule et dans ce cas que Excel fasse ce
travail à ma place.
Comme toujours, l'idée mais ne sais pas faire pratiquement.
Évènementielle, je pense, mais je plane encore.
Et ceci ne doit pouvoir se faire que en colonne B ou E.
Bon courage.



michdenis
Le #18437161
Un aperçu de ce qui est possible de faire :

Si tu tapes X dans n'importe quelle cellule de la feuille
elle se transformera en Date & heure...
Tu peux décider du format de la date que tu désires...

Tu places cette procédure dans le module feuille où l'action se déroule
Tu remplaces Range("a:A") par la plage de cellules que tu veux affecter
par la procédure.
'------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range
For Each C In Intersect(Range("A:A"), Target)
If UCase(C) = "X" Then
Application.EnableEvents = False
C = "": C = Now
C.NumberFormat = "DD/MM/YYYY HH:MM:SS"
Application.EnableEvents = True
ElseIf C = "" Then
C.NumberFormat = "General"
End If
Next

End Sub
'------------------------------




"milloche"
Bonjour
J'utilise très souvent ctrl+point-virgule puis espace puis ctrl+deux-points pour entrer
NOW value dans certaines cellules (le résultat n'est pas volatile et c'est bien comme çà).
Très pratique, cela marche même si la cellule était formatée autrement qu'en date (elle
accueille parfois temporairement des %ages avant de devenir date et heures). Elle s'adapte
toute seule.
Je voudrais encore simplifier, c'est à dire ne taper qu' un "x" dans cette cellule et dans
ce cas que Excel fasse ce travail à ma place.
Comme toujours, l'idée mais ne sais pas faire pratiquement.
Évènementielle, je pense, mais je plane encore.
Et ceci ne doit pouvoir se faire que en colonne B ou E.
Bon courage.
garnote
Le #18437351
Mauvaise réponse, toutes mes excuses.

Serge

"garnote"
Bonjour,

Un exemple :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And Target.Value = "x" Then Target.Value = Now
End Sub

Ceci te convient-il ?

Serge

"milloche"
Bonjour
J'utilise très souvent ctrl+point-virgule puis espace puis ctrl+deux-points pour entrer NOW value dans certaines cellules
(le résultat n'est pas volatile et c'est bien comme çà). Très pratique, cela marche même si la cellule était formatée
autrement qu'en date (elle accueille parfois temporairement des %ages avant de devenir date et heures). Elle s'adapte
toute seule.
Je voudrais encore simplifier, c'est à dire ne taper qu' un "x" dans cette cellule et dans ce cas que Excel fasse ce
travail à ma place.
Comme toujours, l'idée mais ne sais pas faire pratiquement.
Évènementielle, je pense, mais je plane encore.
Et ceci ne doit pouvoir se faire que en colonne B ou E.
Bon courage.







garnote
Le #18437331
En m'inspirant du maître, je te propose plutôt celle-ci :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range
Set inter = Intersect(Range("A:A"), Target)
If Not inter Is Nothing Then
For Each C In inter
If UCase(C) = "X" Then
Application.EnableEvents = False
C = Now
Application.EnableEvents = True
Else
C.NumberFormat = "General"
End If
Next C
End If
End Sub

Serge



"garnote"
Mauvaise réponse, toutes mes excuses.

Serge

"garnote"
Bonjour,

Un exemple :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And Target.Value = "x" Then Target.Value = Now
End Sub

Ceci te convient-il ?

Serge

"milloche"
Bonjour
J'utilise très souvent ctrl+point-virgule puis espace puis ctrl+deux-points pour entrer NOW value dans certaines cellules
(le résultat n'est pas volatile et c'est bien comme çà). Très pratique, cela marche même si la cellule était formatée
autrement qu'en date (elle accueille parfois temporairement des %ages avant de devenir date et heures). Elle s'adapte
toute seule.
Je voudrais encore simplifier, c'est à dire ne taper qu' un "x" dans cette cellule et dans ce cas que Excel fasse ce
travail à ma place.
Comme toujours, l'idée mais ne sais pas faire pratiquement.
Évènementielle, je pense, mais je plane encore.
Et ceci ne doit pouvoir se faire que en colonne B ou E.
Bon courage.











Jacky
Le #18437321
Bonjour,
'---------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Or Target.Column = 5 Then
If UCase(Target) = "X" Then Target = Now
End If
End Sub
'----------------

--
Salutations
JJ


"milloche"
Bonjour
J'utilise très souvent ctrl+point-virgule puis espace puis
ctrl+deux-points pour entrer NOW value dans certaines cellules (le
résultat n'est pas volatile et c'est bien comme çà). Très pratique, cela
marche même si la cellule était formatée autrement qu'en date (elle
accueille parfois temporairement des %ages avant de devenir date et
heures). Elle s'adapte toute seule.
Je voudrais encore simplifier, c'est à dire ne taper qu' un "x" dans cette
cellule et dans ce cas que Excel fasse ce travail à ma place.
Comme toujours, l'idée mais ne sais pas faire pratiquement.
Évènementielle, je pense, mais je plane encore.
Et ceci ne doit pouvoir se faire que en colonne B ou E.
Bon courage.



milloche
Le #18437651
La première solution de garnote me plaisait bien (1 ligne) mais elle ne formatait pas la
cellule, contrairement au clavier.
J'ai rajouté une ligne pour le formatage et impecable donc 2 lignes.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = "x" Then Target.Value = Now
Target.NumberFormat = "m/d/yyyy"
End Sub

Les autres solutions sont bonnes aussi, mais plus grosses.
Mais si je comprends bien évitent de faire des bêtises dans d'autres cellules que celles
prévues.
Mon dilemme : je ne sais plus que choisir.
Je me retrouve comme un enfant au pied du sapin devant plein de cadeaux. Je vais tester
tout cà.
Merci à tous deux.
JMM

"michdenis"
Un aperçu de ce qui est possible de faire :

Si tu tapes X dans n'importe quelle cellule de la feuille
elle se transformera en Date & heure...
Tu peux décider du format de la date que tu désires...

Tu places cette procédure dans le module feuille où l'action se déroule
Tu remplaces Range("a:A") par la plage de cellules que tu veux affecter
par la procédure.
'------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range
For Each C In Intersect(Range("A:A"), Target)
If UCase(C) = "X" Then
Application.EnableEvents = False
C = "": C = Now
C.NumberFormat = "DD/MM/YYYY HH:MM:SS"
Application.EnableEvents = True
ElseIf C = "" Then
C.NumberFormat = "General"
End If
Next

End Sub
'------------------------------




"milloche" :

Bonjour
J'utilise très souvent ctrl+point-virgule puis espace puis ctrl+deux-points pour entrer
NOW value dans certaines cellules (le résultat n'est pas volatile et c'est bien comme
çà).
Très pratique, cela marche même si la cellule était formatée autrement qu'en date (elle
accueille parfois temporairement des %ages avant de devenir date et heures). Elle
s'adapte
toute seule.
Je voudrais encore simplifier, c'est à dire ne taper qu' un "x" dans cette cellule et
dans
ce cas que Excel fasse ce travail à ma place.
Comme toujours, l'idée mais ne sais pas faire pratiquement.
Évènementielle, je pense, mais je plane encore.
Et ceci ne doit pouvoir se faire que en colonne B ou E.
Bon courage.



milloche
Le #18437791
Bon alors maintenant merci à tous trois

"Jacky"
Bonjour,
'---------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Or Target.Column = 5 Then
If UCase(Target) = "X" Then Target = Now
End If
End Sub
'----------------

--
Salutations
JJ


"milloche"
Bonjour
J'utilise très souvent ctrl+point-virgule puis espace puis ctrl+deux-points pour entrer
NOW value dans certaines cellules (le résultat n'est pas volatile et c'est bien comme
çà). Très pratique, cela marche même si la cellule était formatée autrement qu'en date
(elle accueille parfois temporairement des %ages avant de devenir date et heures). Elle
s'adapte toute seule.
Je voudrais encore simplifier, c'est à dire ne taper qu' un "x" dans cette cellule et
dans ce cas que Excel fasse ce travail à ma place.
Comme toujours, l'idée mais ne sais pas faire pratiquement.
Évènementielle, je pense, mais je plane encore.
Et ceci ne doit pouvoir se faire que en colonne B ou E.
Bon courage.







garnote
Le #18438001
Salut Milloche,

Mon adaptation de la macro de Denis me semble éviter
toute forme d'erreur. Entre autre, si tu décides par exemple
d'entrer un nombre par-dessus une date obtenue par la macro,
il sera formaté correctement.
Et si tu veux obtenir ton résultat en entrant un x ou un X
dans une cellule quelconque de ta feuille, il y aurait ceci :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range
For Each C In Target
If UCase(C) = "X" Then
Application.EnableEvents = False
C.NumberFormat = "m/d/yyyy"
C = Now
Application.EnableEvents = True
Else
C.NumberFormat = "General"
End If
Next C
End Sub

Serge





"milloche"
La première solution de garnote me plaisait bien (1 ligne) mais elle ne formatait pas la cellule, contrairement au clavier.
J'ai rajouté une ligne pour le formatage et impecable donc 2 lignes.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = "x" Then Target.Value = Now
Target.NumberFormat = "m/d/yyyy"
End Sub

Les autres solutions sont bonnes aussi, mais plus grosses.
Mais si je comprends bien évitent de faire des bêtises dans d'autres cellules que celles prévues.
Mon dilemme : je ne sais plus que choisir.
Je me retrouve comme un enfant au pied du sapin devant plein de cadeaux. Je vais tester tout cà.
Merci à tous deux.
JMM

"michdenis"
Un aperçu de ce qui est possible de faire :

Si tu tapes X dans n'importe quelle cellule de la feuille
elle se transformera en Date & heure...
Tu peux décider du format de la date que tu désires...

Tu places cette procédure dans le module feuille où l'action se déroule
Tu remplaces Range("a:A") par la plage de cellules que tu veux affecter
par la procédure.
'------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range
For Each C In Intersect(Range("A:A"), Target)
If UCase(C) = "X" Then
Application.EnableEvents = False
C = "": C = Now
C.NumberFormat = "DD/MM/YYYY HH:MM:SS"
Application.EnableEvents = True
ElseIf C = "" Then
C.NumberFormat = "General"
End If
Next

End Sub
'------------------------------




"milloche"
Bonjour
J'utilise très souvent ctrl+point-virgule puis espace puis ctrl+deux-points pour entrer
NOW value dans certaines cellules (le résultat n'est pas volatile et c'est bien comme çà).
Très pratique, cela marche même si la cellule était formatée autrement qu'en date (elle
accueille parfois temporairement des %ages avant de devenir date et heures). Elle s'adapte
toute seule.
Je voudrais encore simplifier, c'est à dire ne taper qu' un "x" dans cette cellule et dans
ce cas que Excel fasse ce travail à ma place.
Comme toujours, l'idée mais ne sais pas faire pratiquement.
Évènementielle, je pense, mais je plane encore.
Et ceci ne doit pouvoir se faire que en colonne B ou E.
Bon courage.







milloche
Le #18437981
Pour Michdenis
C'est la suite de mon post du 18/01 "Format pointu" et fonctionne dans le même fichier. Tu
m'avais déjà donné une solution pour une autre amélioration.
Que ferais-je sans toi qui vint à ma rencontre.
[;o ))

J'ai bien avancé quand même grâce à ce forum.
"milloche"
Bon alors maintenant merci à tous trois

"Jacky"
Bonjour,
'---------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Or Target.Column = 5 Then
If UCase(Target) = "X" Then Target = Now
End If
End Sub
'----------------

--
Salutations
JJ


"milloche"
Bonjour
J'utilise très souvent ctrl+point-virgule puis espace puis ctrl+deux-points pour
entrer NOW value dans certaines cellules (le résultat n'est pas volatile et c'est bien
comme çà). Très pratique, cela marche même si la cellule était formatée autrement
qu'en date (elle accueille parfois temporairement des %ages avant de devenir date et
heures). Elle s'adapte toute seule.
Je voudrais encore simplifier, c'est à dire ne taper qu' un "x" dans cette cellule et
dans ce cas que Excel fasse ce travail à ma place.
Comme toujours, l'idée mais ne sais pas faire pratiquement.
Évènementielle, je pense, mais je plane encore.
Et ceci ne doit pouvoir se faire que en colonne B ou E.
Bon courage.











gmlsteph
Le #18437971
Bonjour,

Private Sub Worksheet_Change(ByVal Target As Range)
Dim iSect As Range, c As Range
Set iSect = Intersect(Target, Union(Range("b:b"), Range("e:e")))
Application.EnableEvents = False
For Each c In iSect
If LCase(c) = "x" Then c = Format(Now, "dd-mmm-yyyy hh:nn:ss")
Next
Application.EnableEvents = True
End Sub

'lSteph

milloche a écrit :
Bonjour
J'utilise tr�s souvent ctrl+point-virgule puis espace puis ctrl+d eux-points pour entrer
NOW value dans certaines cellules (le r�sultat n'est pas volatile et c'est bien comme ��).
Tr�s pratique, cela marche m�me si la cellule �ta it format�e autrement qu'en date (elle
accueille parfois temporairement des %ages avant de devenir date et heure s). Elle s'adapte
toute seule.
Je voudrais encore simplifier, c'est � dire ne taper qu' un "x" d ans cette cellule et dans
ce cas que Excel fasse ce travail � ma place.
Comme toujours, l'id�e mais ne sais pas faire pratiquement.
�v�nementielle, je pense, mais je plane encore.
Et ceci ne doit pouvoir se faire que en colonne B ou E.
Bon courage.


Publicité
Poster une réponse
Anonyme