Date au format jjmmaaa (sans séparateur)
Résolu
areskip
Messages postés
2
Statut
Membre
-
michel_m Messages postés 18903 Statut Contributeur -
michel_m Messages postés 18903 Statut Contributeur -
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,!
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
Bonjour,
voici une possibilité :
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
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
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...
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...