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

Transformer un nombre en date

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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:
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
 
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 !

 
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
 
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,
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…