Conversion de date.

Résolu
MaxSarthe Messages postés 7 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 20 mars 2006 - 17 mars 2006 à 17:13
MaxSarthe Messages postés 7 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 20 mars 2006 - 20 mars 2006 à 11:12
Salut a tous,
J'ai un fichier avec des dates qui ont ete introduite de facon ultra barbare.
Ex:

3 equivaut au 03/2006
4 equivaut au 03/2006
---
04/07 equivaut au 04/2007

Je peut si je veut introduire un jour arbitraire du mois pour facilite la gestion des dates.
Comme mon excel est au format anglophone les dates s'ecrivent de cette facon 01/30/2006 pour le 30 janvier 2006.
Donc si je rajoute 01/ devant chaque string de mon fichier excel va croire que tout est en janvier. si je le met a la fin il va croire que les dates ecritent de cette facon : 09/08 sont toutes en 2001!

Bref je ne m'en sort pas aurriez vous des idees?

Ps j epensait peut etre faire un split pour introduire le /01 toujours avant le / pour le format 09/08 et toujours avant la fin de la chaine pour le format du type 3; mais je n'arrive pas a faire quelquechose qui marche.

6 réponses

MaxSarthe Messages postés 7 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 20 mars 2006
20 mars 2006 à 11:12
MyDate = Range("c7").Cells(i, 1)
LongDate = Len(MyDate)
If LongDate = 8 Then
Range("c7").Cells(i, 1) = Mid(MyDate, 3, 1) & "/" & Left(MyDate, 1) & Right(MyDate, 5)
ElseIf LongDate = 9 Then
Range("c7").Cells(i, 1) = Mid(MyDate, 3, 2) & "/" & Left(MyDate, 1) & Right(MyDate, 5)
End If
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
17 mars 2006 à 18:25
salut,

le problème est que tu ne peux pas restructurer le fichier (utilisé par
d'autres applis) ou que tu voudrais le faire par code mais sans savoir
comment...
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
17 mars 2006 à 20:35
Bonsoir,

Conversion de la date mm/jj/aaaa en jj/mm/aaaa
MyDate = "01/30/2006"
MsgBox "Ancienne Date: " & MyDate &vbCrLf& "Nouvelle Date: " & Mid(MyDate, 4,2) & "/" & Left(MyDate, 2) & Right(MyDate, 5)

Mais on peut aussi utiliser un DateAdd sans convertir la date anglophone en utilisant Left, Mid et Right.

jean-marc
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
17 mars 2006 à 21:01
Re,

Ajout d'un jour à une date au format anglophone
MyDate = "02/28/2006"
MsgBox "Ancienne Date: " & MyDate &vbCrLf& "ancienne date + 1 jour" &vbCrLf &_
"Nouvelle Date: " & DateAdd("d", 1, Mid(MyDate, 4,2) & "/" & Left(MyDate, 2) & Right(MyDate, 5))

jean-marc
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MaxSarthe Messages postés 7 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 20 mars 2006
20 mars 2006 à 09:56
Salut a tous,

J'extrais les donnees depuis un fichier qui ne peut etre modifie, cela dit je peux construire une colonne qui recopie ces meme donnees et je peux modifier ensuite cette colonne.

J'ai bien tente la solution de JMO mais malheureusement les dates ne sont pas vraiment au format XX/XX/XXXX car si le jour ou le mois est inferieure a 10 la date est au format Y/Y/XXXX donc il est dificile de savoir ou faire la coupe avec mid left ou right. (cala dit je peut faire en sorte que tous les jours soient egaux a 1 donc il n'y aurait plus aue le mois qui varierait)


Je vais essayer de voir si on peut calculer la longeur de la string puis faire une condition sur celle ci afin de savoir si c'est Y/XX/XXX ou Y/Y/XXXX.

Bien que ce ne soit pas fini, merci en tous cas pour votre aide.
0
MaxSarthe Messages postés 7 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 20 mars 2006
20 mars 2006 à 11:11
C'est bon en faisant le if ca marche bien!

Merci pour votre aide....!!!
0
Rejoignez-nous