OVH Cloud OVH Cloud

Problème de date

9 réponses
Avatar
INGRID
Bonjour

Voila, je voudrais saisir des dates dans une colonne =E0 la=20
suites des autres sans saisir le /.
Eexemple je saisie 050504 et dans ma colonne je veux voire=20
05/05/04.
Je suis all=E9e dans le format celulle pour mettre les=20
cellules en format dates mais il me changer la celulle il=20
me mets 09/04/38.

Qui peux m'aider ?

Merci

Ingrid

9 réponses

Avatar
Philippe.R
Bonjour Ingrid,
Tu peux essayer ceci dans le module de la feuille concernée :

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column <> 1 Then Exit Sub
Target.Value = DateSerial(Right(Target.Value, 2), Mid(Target.Value, 2, 2), Left(Target.Value, 2))
Exit Sub
End Sub

qui suppose que la saisie se fait en colonne A, mais je ne suis pas certain que le jeu en vaille la
chandelle.
--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"INGRID" a écrit dans le message de
news:807001c4959b$d227a6e0$
Bonjour

Voila, je voudrais saisir des dates dans une colonne à la
suites des autres sans saisir le /.
Eexemple je saisie 050504 et dans ma colonne je veux voire
05/05/04.
Je suis allée dans le format celulle pour mettre les
cellules en format dates mais il me changer la celulle il
me mets 09/04/38.

Qui peux m'aider ?

Merci

Ingrid
Avatar
AV
Dans le module de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column <> 1 Then Exit Sub
Target.Value = DateSerial(Right(Target.Value, 2), Mid(Target.Value, 2, 2),
Left(Target.Value, 2))
Exit Sub
End Sub

AV
Avatar
Gloops
Bonjour Ingrid,

Je vois ce que tu veux dire. ça me rappelait quelque
chose, mais j'ai dû confondre avec Access (InputMask si ma
mémoire ne s'est pas trop évaporée).

Alors sous Excel, si tu tiens à cette fonctionnalité, je
crains qu'il faille chercher du côté de MaskedEdit,
documenté là :
http://msdn.microsoft.com/library/fre/default.asp?
url=/library/fre/masked/html/vbobjMaskEdit.asp

autrement dit, là :
http://minilien.com/?YaCo1x41F7

Se méfier si l'application doit tourner sur de nombreuses
machines dans des environnements différents : les ActiveX
sont dans ce cas une source d'embêtement, car il faut
régler les problèmes d'installation au coup par coup.

Si tu décides de t'en servir, il y aura plusieurs
recherches à faire dans un moteur :
- utilisation des ActiveX
- installation d'un ActiveX

notamment ...
Et prévoir d'y passer un peu de temps.

Pour shématiser, c'est une sorte de gadget qui réalise un
traitement bien précis, comme une saisie formatée par
exemple, dont le résultat est récupéré dans l'application.

Pour qu'il fonctionne, il faut l'installer proprement sur
chaque machine. Avant on commence par se tromper un peu,
et on a différents messages d'erreurs.

Bon courage.

-----Message d'origine-----
Bonjour

Voila, je voudrais saisir des dates dans une colonne à la
suites des autres sans saisir le /.
Eexemple je saisie 050504 et dans ma colonne je veux
voire

05/05/04.
Je suis allée dans le format celulle pour mettre les
cellules en format dates mais il me changer la celulle il
me mets 09/04/38.

Qui peux m'aider ?

Merci

Ingrid
.



Avatar
Anonymous
Je suis allée dans le format celulle pour mettre les
cellules en format dates mais il me changer la celulle
il

me mets 09/04/38.


Oui, c'est normal, il considère ton 050504 comme 50504,
et convertit ce nombre dans la date équivalente en
partant du 01/01/1900 (c'est le 50504ème jour après le
01/01/1900 quoi.. Donc le 09/04/2038).

Pour obtenir ce que tu veux, il te faut créer un format
personnalisé..
Format, Cellule, catégorie Personnalisé, et dans le champ
Type, à droite, tu mets le format suivant :
0#"/"##"/"##
Ca affichera 05/05/04 si tu entres 050504.
L'ennui c'est que ce n'est plus une date, pour lui, à ce
moment là, donc si tu comptes faire des opérations
dessus, c'est râpé...
Mais bon, c'est le résultat que tu souhaites obtenir..

Avatar
AV
;-))
Mes excuses pour cette erreur de copier/coller (de la version de Philippe qui,
soit dit en passant a un "problème"...)

Private Sub Worksheet_Change(ByVal zz As Range)
If zz.Column <> 1 Then Exit Sub
x = Format(zz, "000000")
Application.EnableEvents = False
zz = DateSerial("20" & Right(x, 2), Mid(x, 3, 2), Left(x, 2))
Application.EnableEvents = True
End Sub

AV
Avatar
Anonymous
Vous allez bien loin, pour une bête histoire de format
d'affichage, changeable par le menu Format et la création
d'un format personnalisé..

Quand on dit que les informaticiens ne comprennent la
plupart du temps pas la question posée, on n'est pas loin
du compte, en fait.....

-----Message d'origine-----
;-))
Mes excuses pour cette erreur de copier/coller (de la
version de Philippe qui,

soit dit en passant a un "problème"...)

Private Sub Worksheet_Change(ByVal zz As Range)
If zz.Column <> 1 Then Exit Sub
x = Format(zz, "000000")
Application.EnableEvents = False
zz = DateSerial("20" & Right(x, 2), Mid(x, 3, 2), Left
(x, 2))

Application.EnableEvents = True
End Sub

AV


.



Avatar
CAP2
As-tu toi-même bien compris la question posée par Ingrid ?
Si c'était le cas, tu te serais abstenu de cette remarque infondée et
gratuite...
Maintenant, donne-nous ta solution par format personnalisé pour voir...

CAP2
Avatar
AV
Cher ami "Anonyme",

Vous allez bien loin, pour une bête histoire de format
d'affichage, changeable par le menu Format et la création
d'un format personnalisé..


Sans blague ?
T'es sur que tu obtiens une date avec ta soluce ?
Donc rien à voir avec l'objet du fil : "Problème de date" (ou alors la question
est mal posée)
Comme par ailleurs tu dis toi même qu'on obtient un truc du style "papa aime
maman", tu dois être un brin maso pour t'auto-critiquer ...

Quand on dit que les informaticiens ne comprennent la
plupart du temps pas la question posée, on n'est pas loin
du compte, en fait.....


Parceque, évidemment, toi tu es "the king of the comprenette" ?
A bientôt de te lire (ça distrait !) pour de nouvelles aventures

AV

Avatar
Philippe.R
Bonsoir Alain,
"AV" a écrit dans le message de news:
;-))
Mes excuses pour cette erreur de copier/coller (de la version de Philippe qui,
soit dit en passant a un "problème"...)


Tout à fait excusé et j'avoue que ma soluce était un peu hâtivement bricolée

Amicales Salutations