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

XL 2016 [Résolu] Convertir date au format texte mm.dd.yyyy en date au format JJ/MM/AAAA

Fredox

XLDnaute Occasionnel
Bonjour à tous,
J'importe une feuille depuis un fichier externe, et je rencontre une problématique de format de date.
Dans ma feuille importée j'ai des dates type 15.01.2021, au format texte.
Je voudrais les utiliser au format date: 08/01/2021.

J'ai tenter de remplacer le . par des / mais la conversion donne 01/08/2021
(Bizarrement si je le fais manuellement (Crt+F), le format reste bon.

Bref, comment convertir la date en ce sens ?


Merci
 

WTF

XLDnaute Impliqué
Tu peux ajouter une nouvelle colonne.
Si par exemple ta date 15.01.2021 est en A1, tu peux mettre à coté :
VB:
=DATE(DROITE(A1;4);STXT(A1;4;2);GAUCHE(A1;2))

Tu étends ta formule sur toute ta colonne de date
 

patricktoulon

XLDnaute Barbatruc
bonjour
si tes dates sont conformes a l'original importé te reste plus qu'a faire en vba
exemple
feuil1.[A1]=datevalue([A1].text
sa sera converti en date
il est possible que tu te retrouve avec un nombre du genre 486521
pas d'inquiétude c'est le long de la date
formate ta colonne au format date
 

Fredox

XLDnaute Occasionnel
WTF,

Je pars sur ceci:

VB:
Dim DADATE As Variant
DADATE = Worksheets(1).Range("C3")
Worksheets(1).Range("R3") = DateSerial(Right(DADATE, 4), Mid(DADATE, 4, 2), Left(DADATE, 2))

Merci encore
 

patricktoulon

XLDnaute Barbatruc
re
ok elle étai donc conforme; juste en format texte
essaie simplement ceci
VB:
With Worksheets(1): .Range("C3") = DateValue(.Range("C3").text): End With
l'avantage de datevalue par rapport a date serial c'est que datevalue reconnais 3 formats de date et te la restitue au format utilisé par ton system
si ta date arrive en "dd/mm/yyyy" mais en texte
si ta date arrive en "yyyy/mm/jj"
si tadate arrive en 'mm/jj/yyyy"

elle te sera toujours restituée en dd/mm/yyyy et en date pas en texte
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
ben c'est normal
deja tes dates n'ont pas le bon séparateur
bon enfin bref
voici ta macro
VB:
Sub Test3()    ' en boucle
    Dim DL&, i&
    With Worksheets(1)
        DL = .Range("C" & Rows.Count).End(xlUp).Row
        If DL < 2 Then DL = 2
        For i = 2 To DL
            .Range("R" & i) = DateValue(Replace(.Range("C" & i), ".", "/"))
        Next
    End With
End Sub
 

Discussions similaires

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