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

Bonjour libellule85, riton00, le forum

le plus simple, utilisez la fonction Excel dédiée convertir

Cordialement

exemple.gif
 
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:
- 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
373
Réponses
1
Affichages
367
Compte Supprimé 979
C
Réponses
6
Affichages
598
Réponses
3
Affichages
314
Retour