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

Microsoft 365 Mettre date au format jj/mm/aaaa

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 !

libellule85

XLDnaute Accro
Bonjour le forum,
J'aurais besoin de vos compétences pour résoudre mon problème :
J'ai récupéré une BDD de + de 453 000 références. A l'intérieur de cette BDD les dates sont comme ceci 19820718 et je voudrais les mettre au format jj/mm/aaaa
D'avance merci pour votre aide.

Bien cordialement
 

Pièces jointes

Re,

avec une macro pour automatiser, définir la colonne à traiter en colonne_cible.

Cordialement

VB:
Sub Convertir_Dates()
    Dim Colonne_Cible$
    Colonne_Cible = "A"
    Range(Colonne_Cible & "1:" & Colonne_Cible & Range(Colonne_Cible & Rows.Count).End(xlUp).Row).TextToColumns FieldInfo:=Array(1, 5)
End Sub
 
Bonjour à tous ,

Allez, une petite macro qui permet de sélectionner la ou les zone(s) à convertir.
VB:
Sub AAAAMMJJenDate()
Dim plage As Range, zone, d, x, y
   Application.ScreenUpdating = True: On Error Resume Next 'True pour sélectionner la (multi)plage
   Set plage = Application.InputBox("Sélectionnez la plage à traiter (ou multiplages), svp", _
            Type:=8)                      ' acquisition de la (multi)plage
   If plage Is Nothing Then Exit Sub      ' si erreur d'acquisition, on ne fait rien et on quitte
   Application.ScreenUpdating = False     ' on fige l'écran
   Set plage = Intersect(plage.Parent.UsedRange, plage)  ' on limite à la zone utile
   For Each zone In plage.Areas           ' pour chaque zone de la sélection
      For Each x In zone.Cells            ' pour chaque cellule de la zone
         y = CStr(x)                      ' on convertit la valeur de la cellule en texte
         If y Like String(8, "#") Then    ' si texte est de la forme AAAAMMJJ
            d = "": d = DateSerial(Left(y, 4), Mid(y, 5, 2), Right(y, 2))  ' conversion de y en date
            ' si d est une date alors on efface la cellule, on la formate en date et on y place la date
            If IsDate(d) Then x.ClearContents: x.NumberFormat = "dd/mm/yyyy": x.HorizontalAlignment = 1: x.Value = d
         End If
      Next x   ' cellule suivante de la zone
   Next zone   ' zone suivante
   Application.ScreenUpdating = True
End Sub

Cliquez sur le bouton AAAMMJJ.
 

Pièces jointes

Dernière édition:
Bonjour Riton00, Bernard_XLD, mapomme, dysorthographie,

Merci à tous pour vos réponses, je vais les essayer toutes.
Mais la réponse de Bernard_XLD par la conversion est quand même la plus simple !
A un grand merci à vous tous.

Bien 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

Discussions similaires

Réponses
134
Affichages
5 K
Réponses
3
Affichages
374
Réponses
1
Affichages
368
Compte Supprimé 979
C
Réponses
6
Affichages
599
Réponses
3
Affichages
315
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…