IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

transformation d'un format de date


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    information manager
    Inscrit en
    Janvier 2018
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : information manager

    Informations forums :
    Inscription : Janvier 2018
    Messages : 24
    Par défaut transformation d'un format de date
    Bonjour,

    Je suis encore coincée avec un pb de date que je voudrais convertir en mm/yyyy. Le format actuel dans mon tableau : 01/Dec/2018:12:51:41 +0100. Je soupçonne qu'il est en format string. J'ai essayé d'utiliser plusieurs fonctions comme CDate, DATEVALUE mais rien ne marche !!! Une idée ?
    Merci d'avance ,

    H.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 254
    Par défaut
    Bonjour,

    C'est peut être du bricolage mais ça fonctionne chez moi,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub testdate()
     
    Range("C5") = Month(Range("A1")) & "/" & Year(Range("A1"))
     
    Range("C5").NumberFormat = "mmm-yyyy"
     
    End Sub
    Tu n'as plus qu'à changer les références aux cellules

    Bonne journée à toi,

  3. #3
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour,
    La gêne réside ici en l'orthographe du mois.
    Si celle-ci était Déc (avec accent) alors la conversion en date serait aisée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Option Explicit
     
    Sub transfo_date()
     
    Dim larray As Variant, larray2 As Variant, stdate As String
    Dim ladate As Date
     
    larray = Split(Worksheets(1).[A1], ":")
    stdate = larray(LBound(larray))
    larray2 = Split(stdate, "/")
    'Renvoie Vrai si orhographe "Déc" (avec accent)
    Debug.Print IsDate(larray2(0) & " " & larray2(1) & " " & larray2(2))
     
    End Sub

  4. #4
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Salut Trystan,

    Sur mon poste (Excel 2016), la cellule n'est pas reconnue en date
    retourne

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par MarcelG Voir le message
    Sur mon poste (Excel 2016), la cellule n'est pas reconnue en date
    IsDate([A1]) retourne Faux
    On peut aussi plus simplement le tester avec la fonction ESTNUM directement dans Excel (sans VBA).
    Si ça répond Vrai et que ça ressemble à 01/Dec/2018:12:51:41 +0100, c'est que c'est une date.

    Mais le +0100 (pas impossible mais peu probable) laisse penser qu'il y a de grandes chances pour que la réponse soit négative.

    Bref, il faudra sans doute disséquer ces chaines pour les recomposer avec un DateSerial() (en VBA) ou un DATE() (en Excel).
    Et avec le mois littéral, ce sera un peu plus compliqué. Il faudra utiliser un Select Case (en VBA) ou un RECHERCHEV() (en Excel).

Discussions similaires

  1. Transformer le format des dates
    Par shmuel dans le forum Langage
    Réponses: 2
    Dernier message: 20/04/2015, 11h59
  2. [MySQL] transformer un format de date venant d'un csv
    Par albinszten dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 26/02/2010, 19h55
  3. transformer un format de date
    Par kuhnden dans le forum Access
    Réponses: 2
    Dernier message: 29/03/2008, 17h58
  4. [Dates] Transformation de format de date PHP
    Par ns_deux dans le forum Langage
    Réponses: 3
    Dernier message: 04/10/2006, 12h15
  5. Transformer un format de Date
    Par La_Bande_A_Zozo dans le forum C++Builder
    Réponses: 7
    Dernier message: 27/05/2006, 00h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo