Conversion de date. [Résolu]

Signaler
Messages postés
7
Date d'inscription
jeudi 16 mars 2006
Statut
Membre
Dernière intervention
20 mars 2006
-
Messages postés
7
Date d'inscription
jeudi 16 mars 2006
Statut
Membre
Dernière intervention
20 mars 2006
-
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

Messages postés
7
Date d'inscription
jeudi 16 mars 2006
Statut
Membre
Dernière intervention
20 mars 2006

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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
39
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...
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
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
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
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
Messages postés
7
Date d'inscription
jeudi 16 mars 2006
Statut
Membre
Dernière intervention
20 mars 2006

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.
Messages postés
7
Date d'inscription
jeudi 16 mars 2006
Statut
Membre
Dernière intervention
20 mars 2006

C'est bon en faisant le if ca marche bien!

Merci pour votre aide....!!!