CONVERTISSEUR 1.1.2001 -> 01.01.2001

cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 - 5 août 2004 à 17:16
cs_FAS Messages postés 88 Date d'inscription vendredi 26 avril 2002 Statut Membre Dernière intervention 24 février 2006 - 27 août 2004 à 19:49
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/25195-convertisseur-1-1-2001-01-01-2001

cs_FAS Messages postés 88 Date d'inscription vendredi 26 avril 2002 Statut Membre Dernière intervention 24 février 2006
27 août 2004 à 19:49
d -> 6 par exemple, sans 0.
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012
6 août 2004 à 15:04
et d tout seul?
Format(LaDate, "d.m.yyyy")

++
Moustachu
el_teedee Messages postés 497 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 13 juillet 2015 9
6 août 2004 à 09:50
.... Lol

bah oui, merci, je savais pas, dd -> 06, ddd-> initiales du jour, dddd-> jour en toutes lettres, pareil pour "mm","mmm", ou "mmmm"

Donc Format$(LaDate,"dddd.mmmm.yyyy") donne :
Vendredi.Aout.2004
thx crenaud76
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
6 août 2004 à 09:05
Et comme cela !
Format$(LaDate,"dd.mm.yyyy")
Ca vous suffit pas ?
el_teedee Messages postés 497 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 13 juillet 2015 9
6 août 2004 à 01:43
Oh, que non, j'apprécie qu'on réponde a mes sources ... :)

alors, convertir 30.30.2004, c pas possible, car la textbox étant au format date, des que tu laches le focus, la date est convertie toutes seule si elle est valide, sinon il te marque une erreur : 'vous avez rentrez une valeur incorrecte pour cette textbox a cause de son type : date' (ou un truc dans le genre)

2emement: ma fonction ne sert QUE quand (c le cas dans mon appli) la textbox recoit par défaut la date, qui sera comme aujourd'hui -> 6.8.2004.

Si tu ne touches pas à la date, elle reste ainsi, donc c pas bon :/
Si tu prends le focus et que tu perds le focus -> reste ainsi, pas bon :/
Si tu remplace un caractère, ex 6-> 5 ou même 6->6, la, seulement, ACCESS, (enfin, la textbox) convertit ta date en 06.08.2004. c bon :)

Je voulais donc une fonction qui corrige ce format quand tu ne touches pas a la date / textbox (ex : la date par défaut te convient)

Kapisch ?

:)
amicalement
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
5 août 2004 à 20:55
Ahh oui j'avais pas vu le (<> 10 )
mais c'est tellement évident que la fonction Convert_Date doit impérativement tester la validité de la date (si c'est correct)

si len(Date) = 10 alors teste la validité de la date sinon
changer le format et tester une autre fois

enfin je n'ai pas vb pour tester mais c'est quoi le résultat de ca :

Text_Date = Conversion_Date("30.30.2004")
Text_Date = Conversion_Date("a1.z.2004")

Est ce que c'est valable ??

ne prends pas mal mes messages mais c'est juste pour disucuter et améliorer le code ;)

Merci de ta compréhension ;)
el_teedee Messages postés 497 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 13 juillet 2015 9
5 août 2004 à 19:43
Heu, je suis pas trop d'accord avec toi... enfin ché pas
else
Conversion_Date = ""
End If


si la date est correcte, alors tu la remplace par "", c'est a dire tu l'effaces? Je suis pas d'accord... If c'est pas correct -> traitement, sinon... ben pas de else en fait, ma fonction retourne la meme date si elle était déjà correcte...
end if
Conversion_Date = La_Date
end sub


ahhhhhhhhhhhhh

ok je viens de piger ^^

si elle est correcte, le fonction retourne "", et si c "", alors ........

hmmmmmmm, non , en fait je vois pas.....

c tellement plus simple c ke j'ai fait (et ca marche)... dis moi ou ca couille... lol


ps : si c le fait que je test pas si y'a une date, en effet je le fait dans mon programme, mais ca se fait ailleurs, et j'allais pas mettre tout mon programme (trop long) ici...

^^
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
5 août 2004 à 17:16
bon g pas tester ce code mais je crois que c'est plus juste comme ca :

Function Conversion_Date(La_Date As String) As String
Dim Jour, Mois As String
If Len(La_Date) <> 10 Then
'l'expression de la date n'a pas le bon format
'teste le jour:
Jour = Left(La_Date, InStr(1, La_Date, "."))
If Len(Jour) <> 3 Then
'le jour n'est pas correct:
Jour = "0" & Jour
Jour = Left(Jour, 2)
Mois = Right(La_Date, 7)
If Left(Mois, 1) = "." Then
'le mois n'est pas correct:
Mois = Right(Mois, 6)
Mois = "0" & Mois
End If
La_Date = Jour & "." & Mois
End If
Conversion_Date = La_Date

else

Conversion_Date = ""

End If

End Function


et dans l'événement à appeler :

Private Sub Bouton_OK_Click()
if Conversion_Date(Text_Date)="" then
Text_Date = Conversion_Date(Text_Date)
else
msgbox"Veuillez resaisir la date"
endif
End Sub
Rejoignez-nous