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 :

Méthode TextToColumns dans une macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 5
    Par défaut Méthode TextToColumns dans une macro
    Bonjour,
    j'essaye de convertir un fichier .csv dans excel.
    la conversion manuelle fonctionne normalement et je recupère bien mes 112 colonnes sans problème.
    lorsque j' essaye de le faire par une macro le resultat ne comporte sur la première ligne que 9 champs de colonne complets le 10° est tronqué et sur les autres lignes je ne récupère que 60 colonnes.
    existe il une limitation connue pour la méthode TextToColumns ou alors quelque chose à déclarer?
    Merci d'avance.
    ps: une des donnée à traiter est en colonne 84

  2. #2
    Membre expérimenté
    Inscrit en
    Juillet 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 239
    Par défaut Import fichier CSV
    Bonjour ,

    La méthode TextToColumns n'est pas adaptée pour traiter les fichiers CSV. Pour le peu que j'en connaisse elle s'utilise sur un fichier xls , hor le problème est de convertir le fichier csv dans un format compréhensible par Excel.

    Je te conseille la méthode suivante.
    Tu ferme ton fichier csv.
    Tu te mets en enregistrement macro
    Tu ouvres le fichier CSV en précisant le format : séparateur , ligne d'entête , le format éventuel de cetaines colonnes mal interprétées...
    Tu arrête l'enregistrement.
    Tu analyses le code générés ; Le but est de récupérer le code du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       Workbooks.OpenText Filename mon_fichier.csv, Origin:=xlWindows, StartRow:=  1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
            ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False , Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
            TrailingMinusNumbers:=True
    le problême consiste à adapter la syntaxe du opentext.

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 5
    Par défaut
    Bonjour,
    Merci pour cette reponse mais pour moi lorsque j' enregistre l'ouverture de mon fichier .csv depuis excel dans la macro ca me donne toujours le même code à savoir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        Workbooks.Open Filename:= _
            "C:\Documents and Settings\xxx\My Documents\1-Exploit\1-P 1\1-suivi\1-Actions\Ag\CS\radio-relève\3\Releve de Août 09 Preully.csv"
        Columns("A:A").Select
        Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
            Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
            :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), ...........        1), Array(111, 1), Array(112, 1)), TrailingMinusNumbers:=True
        ActiveWindow.SmallScroll ToRight:=110
    End Sub
    c' est exactement le code que j' essaye d'integrer dans ma macro!
    excel n'utilise pas la fonction OpenText mais je vais essayer quand même
    Merci

  4. #4
    Membre expérimenté
    Inscrit en
    Juillet 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 239
    Par défaut Ouverture fichier csv
    Essayes par macro le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
     Workbooks.OpenText Filename "C:\Documents and Settings\xxx\My Documents\1-Exploit\1-P 1\1-suivi\1-Actions\Ag\CS\radio-relève\3\Releve de Août 09 Preully.csv"
    , Origin:=xlWindows, StartRow:=  1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
            ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False , Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
            TrailingMinusNumbers:=True
    Ton fichier à l'extension csv mais il est déja modifié par Excel.
    Pour faire un test , ouvre le fichier avec wordpad ou autre pour regarder le format .

  5. #5
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 5
    Par défaut
    Salut
    mon fichier est bien un fichier text séparer par des virgules,
    je viens de l' ouvrir avec Wordpad
    mais je pense que la config de mon excel 2003 n'est pas bonne!!!!
    je ne comprend pas la différence de réponse entre l' action manuelle et la version macro?!
    je viens d'essayer avec la méthode Opentext c' est encore pire il ne tient pas compte de l' indication "Comma:=true" donc tout dans la même cellule c' est de pire en pire!!!!

    bonjour
    Merci codefacile le pb semble lié à mon poste car ma macro fonctionne très bien sur le poste d'une collègue.
    maintenant il me reste à trouver pourquoi pas sur le mien (on est sensé avoir des postes masterisé donc identiques!!!!!!).
    peut tu me donner des pistes pour cette recherche?!

  6. #6
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour à tous,

    Peut être une info ici

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

Discussions similaires

  1. Code asm dans une macro C
    Par progfou dans le forum C
    Réponses: 11
    Dernier message: 01/03/2006, 18h50
  2. [Tkinter] Méthode get() dans une boucle while
    Par Thundie dans le forum Tkinter
    Réponses: 2
    Dernier message: 04/02/2006, 00h06
  3. Comment insérer une macro excel dans une macro word?
    Par max2245 dans le forum VBA Word
    Réponses: 15
    Dernier message: 07/01/2006, 17h44
  4. pb dans une macro excel VB
    Par syl221 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 20/10/2005, 17h29
  5. [Applet] appel de la méthode stop() dans une applet
    Par ciol2.6.12 dans le forum Applets
    Réponses: 4
    Dernier message: 08/09/2005, 13h40

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