Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Transformer un nombre en date

Hypokhampe

XLDnaute Nouveau
Bonjour,

Je m'arrache les cheveux pour trouver une macro pour convertir des données.

J'extrais des données d'une application afin d'obtenir un listing nettoyé sur Excel. J'ai réussi à obtenir ce que je voulais jusque là.

Le hic :

Dans la dernière colonne de mon tableau, il y a la date de saisie effectuée dans l'application. Le format affiché est jjmmaa (ex: 120908). Je souhaite convertir ce nombre reflétant une date en date réelle (pour que Excel considère cette donnée comme étant une date et nom un nombre à 6 chiffres). Si je convertis ce nombre au format date, il m'envoie au mois d'aout de l'année 2203 !

Existe-t-il un moyen d'insérer par macro un slash de chaque côté de ce qui correspond dans mon nombre à mm (le mois quoi) ?

J'ai épuisé toutes mes connaissances et ressources sur le sujet... J'en appelle à votre aide...

Vous sauveriez un être en perdition dans les tourments du VB...

En espérant vous lire bientot...

HK
 

tototiti2008

XLDnaute Barbatruc
Re : Transformer un nombre en date

RE :

Raja,
la fonction Texte a une utilité. en effet, si la date est le 02/09/2008 par exemple, la cellule contiendra
020908, ce qui converti en nombre devrait donner :
20908
essaye ta formule puis la mienne, tu verras que l'on obtient pas le même résultat.
je me suis donc permis de mettre :
en moins bien
 

Raja

XLDnaute Accro
Re : Transformer un nombre en date

Re tototiti2008,

OK. Pas de soucis. J'ai simplement apporté une solution à un problème donné. Car, dans le sujet on nous dit que les données sont sous forme de "jjmmaa". J'ai considéré que la formule Date est largement suffisante dans ce contexte. Personnellement, je n'ai aucune difficulté à accepter ou de comprendre les critiques de la communauté quand celles-ci sont faits de façon objective.
 
Dernière édition:

sousou

XLDnaute Barbatruc
Re : Transformer un nombre en date

Tu peux essayer cela
cela fonctionne avec format jmmaaaa ou jjmmaaa
Function d(a)
an = Right(a, 4)
m = Right(Left(a, Len(a) - 4), 2)
j = Left(a, Len(a) - (Len(an) + Len(m)))
d = CDate(j & "/" & m & "/" & an)
End Function
 

Hypokhampe

XLDnaute Nouveau
Re : Transformer un nombre en date

Voilà le code final obtenu, je suis sûr qu'on peut l'alléger, mais en tout cas ça marche et ça accélère mon travail. Merci à toutes et tous pour votre aide, ce forum est super !

 

wilfried_42

XLDnaute Barbatruc
Re : Transformer un nombre en date

re:

une macro ???

Code:
Sub transforme()
     Dim cel as range
     for each cel in range[COLOR="Red"]("A1:A"[/COLOR] & range("A65536").end(xlup).row)
          cel.value = datevalue("20" & right(cel.text,2) & "/" & mid(cel.text,3,2) & "/" & left(cel.text,2)
          cel.NumberFormat = "D"
     next
end sub

cette macro transforme la colonne A complete, à modifier si necessaire la partie en rouge
 

myDearFriend!

XLDnaute Barbatruc
Re : Transformer un nombre en date

Bonsoir Hypokhampe, wilfried_42, tototiti2008, Raja, sousou,

Dans la série "on peut peut-être éviter une boucle" (mon jeu préféré ), à tester pour la colonne A :
Code:
    Columns("A").TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, FieldInfo:=Array(0, 4)
Comme pour les camarades, cela suppose que les données de départ sont toujours sur 6 caractères.

Cordialement,
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…