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 :

macro pour ouvrir un csv sans conversion numérique


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 3
    Par défaut macro pour ouvrir un csv sans conversion numérique
    Bonjour,

    Je cherche à ouvrir un fichier csv depuis excel. évidemment le fichier contient quelques éléments perturbateur notamment:
    • des retours charriots (dans des chaines de caractère bien délimité par des ")
    • des champs texte ne contenant que des chiffres (comme 007 par exemple) - dans des chaines non délimitées par des "...


    j'ai utilisé la fonction opentext de cette façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        SourcFich = "C:\new  9.csv"
     
        obj = Array(Array(1, 2), Array(2, 2), Array(3, 2))
     
        Workbooks.OpenText Filename:=SourcFich, Origin:=xlMSDOS, _
        StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlTextQualifierDoubleQuote, Semicolon:=True, _
        FieldInfo:=obj, Local:=True, TrailingMinusNumbers:=True
    et... je récupère bien mes retours charriots, par contre excel converti les champs textes en numérique (007 devient 7)

    si je change juste l'extension du fichier en ".txt" les champs textes ne sont pas convertis... mais j'ai des décalages dans tous les sens à cause des retours charriots

    une idée pour avoir les 2 qui marchent (sans modifier le csv)...??

  2. #2
    Membre éprouvé
    Homme Profil pro
    Consultant comptable
    Inscrit en
    Mai 2011
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant comptable

    Informations forums :
    Inscription : Mai 2011
    Messages : 137
    Par défaut
    Hello,

    De mémoire le CSV est un format spécifique, et la fonction que tu utilise (Workbooks.OpenText) permet d'ouvrir un fichier texte.
    As tu essayer de changer l'extension, et de relancer l'enregistreur de macro pour effectuer le découpage à ta convenance ? (qui tiendra compte des retrours charriot etc....)
    Sinon il y a une autres methode pour convertir un fichier (la commande TextToColumns.)

    En esperant t'avoir aidé.....

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 3
    Par défaut
    Et bien j'ai essayé avec TextToColumns, mais il semblerait que cette fonction n'aime pas du tout les retours charriots... en revanche on arrive bien à traiter les "chaines de caractères numériques".

    J'avais oublié un détail... mes fichiers de test n'était pas en utf8 alors que mes fichiers de prod si... du coup je n'arrive plus du tout à traiter les retour charriots (à choisir je préfère traiter correctement les retours charriots et virer les zéros...)

    ...je vais craquer

  4. #4
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 3
    Par défaut
    ça avance petit à petit...
    avec la fonction open j'arrive "à nouveau" à traiter les retours charriots (avec fichier utf8) mais toujours pas les zéros..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        Workbooks.Open Filename:=SourcFich, Format:=4, Local:=True, _
            Origin:=xlWindows

    petit à petit l'oiseau fait son nid..

Discussions similaires

  1. [XL-2003] macro pour ouvrir classeur ,récup données et fermer
    Par doudou8mc dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/11/2009, 16h45
  2. [XL-2003] macro pour ouvrir un classeur sur lotus et recup données
    Par doudou8mc dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 04/11/2009, 10h24
  3. macro pour ouvrir un fichier excel
    Par NEMEZISS dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 20/04/2009, 17h06
  4. [E-03] Macro pour créer une liste sans les vides
    Par PYJ59 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/12/2008, 10h19
  5. Macro pour ouvrir un fichier excel avec des ','
    Par oliver75 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 30/05/2007, 18h08

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