Date au format jjmmaaa (sans séparateur)

Résolu
areskip Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour à tous,

je suis bien bloqué avec des dates au format jjmmaaaa sans aucun séparateur.
Comment faire pour les transformer en date valide dans VBA ?
J'ai bien essayé en découpant en petit morceaux pour y intercaler des /, mais peut être existe t-il une méthode plus simple ?

merci d'avance si vous avez une idée,!

3 réponses

pilas31 Messages postés 1825 Date d'inscription   Statut Contributeur Dernière intervention   645
 
Bonjour,

voici une possibilité :

date_valide = CDate(Mid(jjmmaaaa, 3, 2) & "/" & Mid(jjmmaaaa, 1, 2) & "/" & Mid(jjmmaaaa, 5, 4)) 


La variable jjmmaaaa contient la fameuse date. Il faut penser qu'en vba c'est un format anglais et donc les jours et les mois sont inversés.
Peut-être qu'avec l'instruction Format() il y a d'autres possibilités
0
areskip Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pilas31 !

J'ai du adapter car le zéro des jours ne s'affiche pas (1 et pas 01).

Ça donne ça :

size = Len(Cells(i, j))
If size = 8 Then date_valide = CDate(Left(Cells(i, j), 2) & "/" & Mid(Cells(i, j), 3, 2) & "/" & Right(Cells(i, j), 4))
If size = 7 Then date_valide = CDate(Left(Cells(i, j), 1) & "/" & Mid(Cells(i, j), 2, 2) & "/" & Right(Cells(i, j), 4))

Mais il y a peut être plus simple en affichant le premier zéro...
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 313
 
bonjour
avec la formule de Pilas31 que je salue
peut-^tre
jjmmaaaa = "04062014"
With Range("A1")
.Value = CDate(Mid(jjmmaaaa, 3, 2) & "/" & Mid(jjmmaaaa, 1, 2) & "/" & Mid(jjmmaaaa, 5, 4))
.NumberFormat = "dd/mm/yyyy"
End With
0