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

Sub Macro5()
'Préparation de la colonne pour la formule
Range("H1").Select
ActiveCell.FormulaR1C1 = "Datum"
'Intégration et copie de la formule
Range("H2").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-1]>0,DATE(20&RIGHT(RC[-1],2),MID(RC[-1],3,2),LEFT(RC[-1],2)),"""")"
Range("H2").Select
Selection.AutoFill Destination:=Range("H2:H500"), Type:=xlFillDefault
'Forcer le calcul sur la sélection
Range("H2:H500").Select
Calculate
'Copie dans colonne à droite de la colonne des résultats (valeurs uniquement)
Columns("H:H").Select
Selection.Copy
Columns("I:I").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.NumberFormat = "m/d/yyyy"
'Elimination des 2 colonnes précédemment utilisées
Columns("G:H").Select
Range("H1").Activate
Selection.Delete Shift:=xlToLeft
'Retour au point d'origine de la feuille
Range("A1").Select
End Sub
 
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
Retour