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 :

Transformer date americaine en date francaise [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juillet 2014
    Messages : 17
    Par défaut Transformer date americaine en date francaise
    bonjour à tous

    je dois traiter un fichier excel qui se compose de plusieurs lignes chacunes associées à une date. néanmoins, le createur du fichier a rempli les dates sous le format americain (ex : pour le 1er juillet 2014, il a marqué 07/01/2014). Probleme, j'ai une version francaise d'excel, qui considere donc que ces dates sont sous le format francais. Pour recuperer les dates en "bon format" par rapport a celle ci, j'ai essayé ddeux solutions :

    1) (en supposant que les dates soient en colonnes C) : la formule =CONCATENER(STXT(C2;4;2);"/";GAUCHE(C2;2);"/";DROITE(C2;4)) , qui, dans un monde ideal, a partir de 07/01/2014 devrait renvoyer 01/07/2014. Probleme = excel lit les dates en format nombre, et cette formule me renvoie du coup un truc dans le genre 77/41/1880. Pas l'idéal donc.

    2) j'ai aussi essayé de formater les cellules en format americain pour qu'elles s'affichent en format francais du coup (pas tres clair dis comme ca) avec la formule :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("C:C").NumberFormat = "mm/dd/yy;@"
    l'affichage est plutot bon, mais la encore c'est pas l'idéal, puisqu'excel conserve le mauvais format en memoire, et quand je veut faire un classement par date, considere quand meme que le "07/01/2014" est le 1er juillet. Pas top donc

    voila, j'avoue ne pas avoir d'autres idées pour contourner le probleme. si quelqu'un en a, je suis preneur

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, de la lecture.

  3. #3
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juillet 2014
    Messages : 17
    Par défaut
    bonjour,

    merci de votre aide, mais cela ne resoud pas mon probleme

    dans l'idéal, j'aimerais construire une fonction qui transforme une date xx/yy/zzzz en yy/xx/zzzz

    Si vous avez une ou des pistes, merci d'avance pour votre aide

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    le problème est qu'excel fait une converton implicite des date aux format régionale a l'overture de fichier don le 04/01 deviemt le 01/04 tu parle d'un poisson!

    En revanche le 13/01 ne change pas!

    Avec la commande split(date,"/") il faut inverser le jour et le mois en tenant compte du >12

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Tu pourrais essayer ainsi
    =DATEVAL(STXT(C2;4;2) & "/" & GAUCHE(C2;2) & "/" & DROITE(C2;4))

    si c'est bien ton format de date

    Il te restera à modifier les propriétés de cellules au format Date

  6. #6
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juillet 2014
    Messages : 17
    Par défaut
    Bonjour Robert,

    pourriez vous m'en dire plus sur le fonctionnement et l'utilisation de la commande split svp ? je n'en ai jamais entendu parler auparavant. Merci d'avance

  7. #7
    Invité
    Invité(e)
    Par défaut
    split permet de convertir une chaîne de caractère en fonction d'un séparateur.
    regaredes le fichier joint!
    Fichiers attachés Fichiers attachés
    Dernière modification par AlainTech ; 11/08/2014 à 00h42. Motif: Suppression de la citation inutile

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] couleur cellule date differente si date passee, ou date du jour
    Par chris09300 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 29/03/2011, 08h24
  2. Transformer un format de Date
    Par La_Bande_A_Zozo dans le forum C++Builder
    Réponses: 7
    Dernier message: 27/05/2006, 00h41
  3. Transformer du texte en date
    Par banker dans le forum Access
    Réponses: 3
    Dernier message: 20/01/2006, 08h41
  4. [Date] Comment transformer mon String en date avec newDate?
    Par Devil666 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 10/06/2005, 16h50
  5. [JComboBox] Transformer l'Object en Date
    Par Rimk78 dans le forum Composants
    Réponses: 4
    Dernier message: 30/05/2005, 16h51

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