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 :

[E-07] Format date en csv (Texttocolumn DD/MM -MM/DD)


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2007
    Messages : 89
    Par défaut [E-07] Format date en csv (Texttocolumn DD/MM -MM/DD)
    Bonjour,

    J'ai un problème concernant le format de date Francais/Americain, lors de l'ouverture d'un fichier csv par VBA.

    Quand j'ouvre le fichier csv à la main et que je fais texttocolumn, la date est 05/11/2008 mais si je fais la même manip avec le VBA ca change en 11/05/2008.

    J'ai essayé de deux façons :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Workbooks.OpenText ("\\CHEMINDACCES\NOMDUFICHIER.csv"), DataType _
    :=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Comma:=True, FieldInfo _
            :=Array(8, 4), TrailingMinusNumbers:=True
     
            Cells.EntireColumn.AutoFit
            Range("A1").Select
    J'utilise pour mettre la date en format DMY. Encore une fois....rien .... ca se met en MDY

    Et aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Workbooks.Open ("\\CHEMINDACCES\NOMDUFICHIER.csv"), local:=False
     
    ' Puis Texttoclumn avec les même paramêtres que pour OpenText.
    Je n'arrive pas à comprendre pourquoi, à la main ça fonctionne et en VBA non !! Pour l'instant j'ouvre tous les fichiers à la main, puis texttocolumn mais j'aimerai quelque chose d'automatisé !!!

    Merci d'avance

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Par défaut
    Quand tu ouvres tes fichiers "à la main" c'est quel code que tu exécute juste derrière?
    Car là je mélange un peu tout, et bref j'ai envie de bien comprendre avant de dire des bêtises.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2007
    Messages : 89
    Par défaut
    Je n'étais surement pas très claire dsl, quand je dis : "A la main", ça veut dire que je n'exécute aucun code.

    Je double clique sur le fichier csv, puis selectionne la collone A et ensuite j'utilise l'outils text to column. Tout cela manuellement, pas d'intervention de code. Et dans ce cas ça fonctionne la date est en format DMY.

    Mais si j'utilise un code pour ouvre mon fichier tel wue workbooks.opentext, ici la date passe en format MDY.

    Merci, Ciao !

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2007
    Messages : 89
    Par défaut
    Je vais apporter moi même un réponse à ma discussion.

    Apparemment ce problème est aussi connus de Microsoft puisqu'ils en parlent sur leur support :

    http://support.microsoft.com/kb/833724/fr

    Malheureusement, la solution proposée ne fonctionne pas chez moi.

    Je ne suis pas rendu....

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Par défaut
    Ce code c'est l'enregistreur de macros qui te l'a fourni?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2007
    Messages : 89
    Par défaut
    Non je me suis aider de l'aide pour le Array(8,4) et puis j'ai souvent travaillé sur des .csv donc je le connaissais.

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Par défaut
    Je te pose cette question, car si tu enregistres l'action d'ouverture et que le code obtenu ne fonctionne pas c'est là qu'on pourra réellement dire qu'il y a un problème.

    Donc essaye d'enregistrer une ouverture de CSV à la main et dis-moi ce que ça donne quand tu lance le code que ça te donne.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2007
    Messages : 89
    Par défaut
    La même chose.... Le texttocolumn fonctionne mais les dates s'inversent !

    Petite précision, après le 12 du mois, les jours et mois ne pouvant plus être inversé, l'erreur ne se produit plus....

    Je travail tous les jours sur du VBA mais là je vois pas...

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2007
    Messages : 89
    Par défaut
    Donc après encore beaucoup d'essai, j'en ai tiré deux conclusions :

    - C'est un gros bug d'excel, impossible de trouver un code qui fonctionne correctement.

    - Y a quand même toujours une solution...

    Bref j'ai fait un code qui rétablis la date dans le bon ordre en partant du principe que le bug d'excel qui inverse jours et mois apparaisse à chaque fois.

    Au départ j'ai essayé d'assigné le jour, le mois et l'année à trois string puis de les réassembler comme ça : "0" & Mois & "/" & Jour & "/" & Annee.........
    Mais la encore la date se ré-inverser et redevenait MDY !!! (A ce moment la je n'avais plus de cheveux du tout !)

    Donc le code utilisé est assez simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    Dim jour, moi, anne as string
     
    Workbooks.OpenText ("\CHEMIN DU FICHIER\NOM DU FICHER.csv"), DataType _
    :=xlDelimited, TextQualifier:=xlTextQualifierNone, ConsecutiveDelimiter:=False, Comma:=True, TrailingMinusNumbers:=True
     
    ' A ce moment là, les dates se sont inversées (MDY au lieu de DMY)
     
            Cells.EntireColumn.AutoFit
            Range("A1").Select
     
    I = 2
     
    Workbooks("NOM DU FICHIER.csv").Activate
    While Range("A" & I).Value <> ""
        If Day(Cells(I, 8)) < 12 Then
           jour = Day(Cells(I, 8))
            moi = Month(Cells(I, 8))
            anne = Year(Cells(I, 8))
            Cells(I, 8).ClearContents
            If moi < 12 Then
                variabledate = "0" & moi & "/" & jour & "/" & anne
            Else
                variabledate = moi & "/" & jour & "/" & anne
              End If
     
            Cells(I, 8).Value = variabledate
            I = I + 1
     Else
        I = I + 1
     End If
     
    Wend
    VOilà, c'est surement pas très académique mais quand Excel veut pas il ne reste que le systême D !

    Bonne journée à tous,

    NoNo

  10. #10
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Par défaut
    Malheureusement ce sont les comportements énigmatiques de Excel, j'en ai moi-même fait les frais sur quelque chose de beaucoup plus vicieux.

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

Discussions similaires

  1. Format date lors de la création de CSV à partir d'Excel
    Par mehdiyou1985 dans le forum Excel
    Réponses: 3
    Dernier message: 04/11/2013, 16h58
  2. [XL-2003] Import CSV et Format DATE
    Par jcderchain dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/03/2010, 16h24
  3. format Date et import csv
    Par munity dans le forum Développement de jobs
    Réponses: 8
    Dernier message: 20/11/2009, 16h20
  4. Format Date / .csv
    Par pythagore3_14 dans le forum Excel
    Réponses: 1
    Dernier message: 14/08/2008, 09h15
  5. Format date
    Par cochet dans le forum Bases de données
    Réponses: 4
    Dernier message: 02/03/2004, 08h37

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