Excel: Formater du text en date

Résolu
Bonjour,

Quelle est la façon la plus simple de transformer dans Excel le contenu d'une cellule comme ceci: "Apr 3 2012 4:03PM" en format de date et heure?

Il y a plus de 1800 entrées comme ça. Est-ce possible de le faire facilement? Sans tout retaper?

Merci,



--
eLise

12 réponses

  1. Salut,

    Tes données se composent bien comme ton exemple, "Apr 3 2012 4:03PM"
    entre quillemet Apr etc ...
    la date 3 2012 4 correspond à quoi au 3/4/2012 ou 4/3/2012
    les heures tu souhaites avoir ce format 4:03PM ou 24 heures et donc 16:03
    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    0
    1. Bonjour Mike-31

      Non, il n'y a pas de guillemets dans la cellule, juste Apr 3 2012 4:03PM.

      Idéalement, le format recherché serait comme suit: 3 avril 2012 4:03PM
      0
      1. Apr est abrégé pour April (avril en anglais)
        0
    2. Re,

      Re,

      En relisant ton problème, j'avais compris pour Apr le problème est justement cet Apr ou April qu'Excel ne comprend pas sur sa version Française.
      A part faire dans une colonne la liste des mois Anglais mais si ces mois sont abrégé comme Apr il faudra respecter une logique constante et pour les mois on combine une recherchev pour recomposer la date et on formate la cellule comme on veut
      je regarde ça dans la soirée
      0
      1. Et si dans ma cellule j'avais ceci au lieu de ce que j'ai emtionné plus haut:
        4/9/2012 11:11:29 AM

        Est-ce plus simple à convertir en format date qu'Excel saura lire?

        J'ai essayé en convertisasnt les / en - et ensuite appliqué le format mmmm-jj-aaaa hh":"mm":"ss mais ça ne fonctionne toujours pas. J'aurais cru qu'une fois inscrit comme ceci: 4-9-2012 11:11:29 AM le format se serait appliqué, mais non :-(

        Excel n'est pas très intuitif pour les dates :-/

        0
        1. Re,

          Oui mais la du coup tu saisis un format excel et il n'y a plus rien à modifier si ce n'est que le format

          Tout dépend de tes données de base, si tu as Apr 3 2012 4:03PM il suffit de traiter Apr ou April idem pour les autres mois et le tour est joué, reste plus qu'a concatener les occurences pour en faire une date.
          alors comment sont exactement tes données
          0
          1. Contributeur
            Bonjour BILLING, Mike-31,

            Pour transformer ta date ésotérique en date excel, je te propose de mettre cette fonction personnelle dans un module :

            Public Function vers_date(text) 
            Dim elm As Variant, moi As Variant, i As Integer 
                moi = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec") 
                elm = Split(text, " ") 
                For i = 0 To UBound(moi) 
                    If moi(i) = elm(0) Then Exit For 
                Next i 
                If i < 12 Then 
                    vers_date = DateValue(elm(1) & "/" & i + 1 & "/" & elm(2)) + TimeValue(elm(3)) 
                Else 
                    vers_date = "#DATE#" 
                End If 
            End Function 
            

            Pour l'appeler dans ta feuille, tu saisis : =vers_date(A1)
            avec la date à transformer en A1 et mettre le format souhaité dans le résultat.

            Si tu as des erreurs il faut peut-être rectifier la liste des mois anglais, car je suis loin d'être bilingue ;-)

            Toujours zen
            La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer. Antoine de Saint-Exupéry
            1
            1. Bonjour Mike,

              J'ai copier/collé ta fonction dans mon classeur. Je l'ai appelé avec =vers_date(A1) mais mon résultat est le suivant: #NOM?

              La liste abrégée des mois anglais est parfaite, c'est pas là l'erreur. Je me demande si j'ai bien créé cette fonction. Je suis allée dans Visual Basic, copié/collé ta fonction tel quel, sauvegardé. Est-ce que j'ai manqué quelque chose?
              0
              1. Contributeur
                Bonjour BILLING,

                Il faut la copier dans un module pas sur une feuille pour qu'elle soit prise en compte : c'est sans doute ce qui t'arrive car #NOM? signifie qu'il n'a pas trouvé la fonction.
                0
              2. Re,

                Rendons à César ce qui appartient à César, la belle fonction personnalisée est de Gbinforme, merci à lui.
                En ce moment je traine en pointillé sur les forums et ai du mal à suivre les discussions.
                A+
                Mike-31
                0
            2. Mike, je te remercie pour tout tes efforts mais je dois abandonner.

              Je me rends compte qu'à ce point-ci, il me manque beaucoup trop de notions sur les Macros pour pouvoir continuer.

              Je reviendrai sans doute avec d'autres questions pour d'autres tâches mais celle-ci me dépasse. De plus, la personne qui m'a demandé de trouver une solution utilise mainteant un autre rapport qui lui permet d'accomplir ce qu'il veut.

              Merci encore et desolée pour le temps perdu :-(
              0
              1. Quoi qu'aussitôt dit que j'abandonnais, j'ai essayé de nouveau et cette fois j'ai un nouveau résultat: #VALLEUR! Pourquoi?
                0
              2. En passant, ta fonction est bel et bien enregistrée dans un module.
                0
            3. Re,

              il faudrait avoir ton fichier sous les yeux pour pouvoir te répondre avec précision sur l'erreur.
              Si ton fichier ne contient pas de notes confidentielles (que tu peux masquer avec des toto, titi etc ) tu peux le mettre à notre disposition avec ce lien

              https://www.cjoint.com/
              0
              1. Re,

                Attention aux transcriptions des dates tu as plusieurs espaces entre chaque donnée, avec un espace tout marche (entre Apr et le jour tu en as 2 et entre l'année et l'heure également).
                Par contre si tu as plusieurs espaces il faudra aménager la fonction
                0
                1. Hey la gang! Ça fonctionnne!

                  Un gros merci encore une fois :-)
                  0