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 :

Convertir une date anglaise en une date française [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    DATAMINER
    Inscrit en
    Novembre 2014
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : DATAMINER
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2014
    Messages : 147
    Par défaut Convertir une date anglaise en une date française
    Bonjour,

    J’ai un fichier reçu par mon client avec une colonne ou les dates sont format anglais j’ai besoin de convertir cette date en format française dans la dernier colonne vide sur le fichier
    La question : il y a un code VBA qui permet de faire le changement en date française
    Date anglais : 10/07/2015 date française : 07/10/2015
    Merci de votre aide je suis novice en VBA.

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonjour,

    vérifie déjà si tes dates sont bien au format "date" .. et pas texte , en changeant le format d'affichage format de cellule / Nombre / Date / "mercredi 14 mars 2001"

  3. #3
    Membre confirmé
    Homme Profil pro
    DATAMINER
    Inscrit en
    Novembre 2014
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : DATAMINER
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2014
    Messages : 147
    Par défaut
    Oui bien sûr tout la colonne ou il Y a les date sont en format date sauf qu’ils sont en format anglais mois/jour/année et moi j’ai besoin d’une date en format française pour que je puise travail correctement.

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par a.ouguerzam Voir le message
    Oui bien sûr tout la colonne ou il Y a les date sont en format date sauf qu’ils sont en format anglais mois/jour/année et moi j’ai besoin d’une date en format française pour que je puise travail correctement.
    Le fait qu'une date soit affichée ne veut pas forcément dire que les données sont au format date (au sens excel) ... as tu essayé de passer les colonne au format long pour vérifier ... "mercredi 14 mai 2001"

  5. #5
    Invité
    Invité(e)
    Par défaut
    bonjour,
    ton client te fourni un fichier Excel ou CSV?
    si c'est de l'Excel les date sont cetré à droit ou à gauche!

  6. #6
    Membre confirmé
    Homme Profil pro
    DATAMINER
    Inscrit en
    Novembre 2014
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : DATAMINER
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2014
    Messages : 147
    Par défaut
    fichier client format excel
    j'ai trouver une solution sur donnes__>convertir__>suivant_>suivant_>changement du format MJA
    mais je suis dans le cadre de mettre un fichier bien automatisé.

  7. #7
    Invité
    Invité(e)
    Par défaut
    utilises l’enregistreur de macro!
    Dernière modification par AlainTech ; 21/10/2015 à 22h27. Motif: Suppression de la citation inutile

  8. #8
    Membre confirmé
    Homme Profil pro
    DATAMINER
    Inscrit en
    Novembre 2014
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : DATAMINER
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2014
    Messages : 147
    Par défaut
    j'ai déjà essaye de mettre l’enregistreur de macro mais ça marche pas
    Cette manipulation ça marche juste en manuel

    voila le code generé par l'enregistreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Convertirdate()
    '
    ' Convertirdate Macro
    '
     
    '
        Columns("A:A").Select
        Selection.TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
            Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
            :=Array(1, 3), TrailingMinusNumbers:=True
    End Sub

  9. #9
    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
    Citation Envoyé par a.ouguerzam Voir le message
    fichier client format excel
    j'ai trouver une solution sur donnes__>convertir__>suivant_>suivant_>changement du format MJA
    mais je suis dans le cadre de mettre un fichier bien automatisé.
    Essaie en choisissant AJM, soit le format affiché au moment où tu reçois le fichier

    Attention toutefois de ne pas le faire une deuxième fois.
    Le format reviendrait à l'original

  10. #10
    Membre confirmé
    Homme Profil pro
    DATAMINER
    Inscrit en
    Novembre 2014
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : DATAMINER
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2014
    Messages : 147
    Par défaut
    Le code renseigné par Docmarti ca fonction a merveille juste quel m’encrasse des donnes que j’ai dans la colonne D je peux pas mettre les modifications dans la dernier colonne vide.

  11. #11
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Citation Envoyé par a.ouguerzam Voir le message
    Bonjour,

    J’ai un fichier reçu par mon client avec une colonne ou les dates sont format anglais j’ai besoin de convertir cette date en format française dans la dernier colonne vide sur le fichier
    La question : il y a un code VBA qui permet de faire le changement en date française
    Date anglais : 10/07/2015 date française : 07/10/2015
    Est-ce que les dates dont le jour est supérieur à 12 sont aussi au format mm/jj/aaaa ?

  12. #12
    Membre confirmé
    Homme Profil pro
    DATAMINER
    Inscrit en
    Novembre 2014
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : DATAMINER
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2014
    Messages : 147
    Par défaut
    oui par exemple je peux recevoir des fichiers ou il y a sur la colonne A la date en format anglais 12/05/2015 mm/JJ/AAAA mais par contre moi je veux convertir la date dans la dernier colonne vide en francais qui dit JJ/MM/AAA 05/12/2015

    j'ai trouve un code sur un forum mais il faut l'optimisé je pense je le partage avec vous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub convert_test()
        For i = 1 To 10
            cellule = Cells(i, 5)
            If IsDate(cellule) And VarType(cellule) = 7 Then cellule = DateSerial(Year(cellule), Day(cellule), Month(cellule))
            If IsDate(cellule) Then Cells(i, 6) = CDate(cellule)
        Next
    End Sub

  13. #13
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub convert_test()
        For i = 1 To 10
            cellule = Cells(i, 5)
            If IsDate(cellule) And VarType(cellule) = 7 Then cellule = format(cellule,"yyyy-dd-mm")
            If IsDate(cellule) Then Cells(i, 6) = CDate(cellule)
        Next
    End Sub
    Dernière modification par AlainTech ; 22/10/2015 à 06h43. Motif: Suppression de la citation inutile

  14. #14
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Tu n'as pas répondu à la question de DocMarti ..., il y as quoi dans ton fichier pour le 13 mai par exemple ?

    Citation Envoyé par Docmarti Voir le message
    Est-ce que les dates dont le jour est supérieur à 12 sont aussi au format mm/jj/aaaa ?

    la solution que tu présente ne semble pas gérer le cas du ou la date est supérieure au 12 du mois ...


    pour ma part je persiste à penser que tu ne nous en dis pas assez sur la provenance des données et que le traitement des dates doit-être effectué avant .... comment reçoit tu ces données ?

  15. #15
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test()
    For i = 1 To 10
     Cells(i, 1).Select
        Cells(i, 1) = Mydate(Cells(i, 1))
    Next
    End Sub
    Function Mydate(d)
    Mydate = IIf(IsDate(Format(d, "yyyy-dd-mm")), Format(d, "yyyy-dd-mm"), Format(d, "yyyy-mm-dd"))
    End Function

  16. #16
    Invité
    Invité(e)
    Par défaut
    je ne serais pas contre une petite explication!

    je ne voudrai pas déduire 1 à la mauvaise personne!

  17. #17
    Membre confirmé
    Homme Profil pro
    DATAMINER
    Inscrit en
    Novembre 2014
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : DATAMINER
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2014
    Messages : 147
    Par défaut
    ca marche rdurupt sur la 10 premier cellule je peux change les 10 premiers cellules par tout la colonne

    le code ca marche parfaitement sauf que je suis en train de mettre des modifications pour sélection tout la colonne A et mettre les changement sur la dernier colonne vide.

    j'ai essayé de mettre le code ci dessous mais ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub test()
    Columns.Select
        Columns(A) = Mydate(Columns(A))
    End Sub
    Function Mydate(d)
    Mydate = IIf(IsDate(Format(d, "yyyy-dd-mm")), Format(d, "yyyy-dd-mm"), Format(d, "yyyy-mm-dd"))
    End Function

  18. #18
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu
    bonjour a tous

    oui j'ai remarqué cela aussi

    quand on a une date (anglais) du style mm/jj/yyyy(10/07/2015)au format date dans la cellule je précise
    et que l'on veut formater en francais il n'y a pas d'erreur mais ca ne change rien

    alors astuce pour asctuce
    exemple en A1 il y 10/07/2015

    et bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cells(1,1)=trim(format(cells(1,1),"mm/dd/yyyy"))
    le fait d'utiliser trim fait de la date une valeur mais dans le bon ordre

    par contre si c'est 10/25/2015 la conversion fonctionne car excel met pour les jour la valeur qui depasse 12 d'office au bon endroit
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

Discussions similaires

  1. [MySQL] Convertir une date Anglaise MSQL en date Française
    Par bertrandg17 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 07/05/2014, 10h36
  2. Réponses: 7
    Dernier message: 21/03/2011, 13h36
  3. Réponses: 8
    Dernier message: 07/03/2007, 08h34
  4. [Dates] conversion d'une entrée de formulaire en date
    Par cfloriot dans le forum Langage
    Réponses: 5
    Dernier message: 10/02/2006, 09h57
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

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