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 :

[XL2007] Problème séparateur ouverture fichier CSV


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 4
    Points : 3
    Points
    3
    Par défaut [XL2007] Problème séparateur ouverture fichier CSV
    Bonjour à tous,
    J'ai actuellement un problème sur l'ouverture d'un fichier CSV notamment au niveau du séparateur:
    - Paramètre régionaux PC: séparateur ";" / décimale "," et séparateur de milliers "espace"
    - Paramètres EXCEL = paramètres système

    Lorsque j'ouvre mon fichier csv manuellement, les cellules sont bien dispatchées c'est à dire première colonne date, 2eme: heure, 3 suivantes : données températures à 1 décimale (ex: 19,6).

    Avec la fonction OpenText, le fichier s'ouvre avec comme séparateur les virgules, donc la première colonne contient ici date + heure + 19 la suivante 6 + la partie entière de la suivante etc...

    Pourtant tout les paramètres sont bien renseignés :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Workbooks.OpenText Filename:="c:\Applications\courbes_temp.csv", _
                                    Origin:=xlWindows, _
                                    StartRow:=1, _
                                    DataType:=xlDelimited, _
                                    Space:=False, _
                                    comma:=False, _
                                    Tab:=False, _
                                    other:=False, _
                                    semicolon:=True, _
                                    FieldInfo:=Array(Array(1, 3)), _
                                    DecimalSeparator:=",", _
                                    ThousandsSeparator:=" "
    Autre souci, lorsque je copie ces données dans un autre classeur, la mise en forme se fait comme il faut (toute les données ordonnées dans leurs colonnes respectives) sauf que la virgules n'existe plus (exemple 19,875 devient 19875)...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    i = 1
    While Worksheets("courbes_temp").Cells(i, 1) <> ""
           i = i + 1
    Wend
     
    Worksheets("courbes_temp").Range("A2:E" & (i - 1)).Copy
    Application.DisplayAlerts = False
    Workbooks("courbes_temp.csv").Close
    Application.DisplayAlerts = True
    Workbooks("Classeur1.xlsm").Activate
    Worksheets("Feuil1").Activate
    Range("A1").Select
    ActiveSheet.Paste
    Quelqu'un aurait-il une piste ?
    Merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour,

    voir cette discussion Ouvrir un fichier .csv ou un fichier .txt séparateur ";" ou ","

    Avec la méthode OpenText bien paramétrée - pas le cas dans le message précédent - cela fonctionne aussi;
    à faire en répondant bien aux étapes de l'Assistant d'importation en utilisant l'Enregistreur de macros …

    Sinon le sujet des fichiers .csv étant assez récurent, question posée sans effectuer de recherche,
    il y a donc d'autres réponses via une recherche sur ce forum …

    En cas de souci, mettre un fichier .csv en pièce jointe (sans données confidentielles de préférence).

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Encore quelques soucis
    Merci pour la réponse, je crois avoir fait un test comme ça avant mais avec peut-être trop d'arguments..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Workbooks.OpenText Filename:="D:\xls\Fichier.csv", Origin:=xlWindows, _
            StartRow:=1, DataType:=xlDelimited, Local:=True, Semicolon:=True
    Fonctionne en partie grâce à ce code MAIS :
    - Les chiffres avec 3 décimales passent en milliers : exemple 19,875 devient 19875,00
    - Les formats "scientifiques" ne passent pas : exemple 7,28E-07 devient 0,73

    en pièce jointe le fichier .CSV à renommer
    Fichiers attachés Fichiers attachés

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Aucun souci avec ce fichier rien qu'avec la méthode indiquée dans le lien ‼

    J'ajuste ensuite juste la largeur des colonnes et force une colonne en format standard, bref du confort visuel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Workbooks.Open "D:\Tests\courbes_temp.csv", Local:=True
     
        With ActiveWorkbook.ActiveSheet.UsedRange.Columns
            .AutoFit
            .Item(7).NumberFormat = "General"
        End With

Discussions similaires

  1. Problème d'ouverture fichier .csv
    Par Geldouche dans le forum Scilab
    Réponses: 3
    Dernier message: 13/01/2015, 19h56
  2. Problème ouverture fichier csv sur un tableur
    Par kamnouz dans le forum Langage
    Réponses: 5
    Dernier message: 23/12/2010, 14h13
  3. Problème ouverture fichier .csv
    Par julianauribe dans le forum MATLAB
    Réponses: 1
    Dernier message: 17/04/2009, 20h02
  4. Problème de séparateur dans fichier CSV
    Par mbibim63 dans le forum Excel
    Réponses: 4
    Dernier message: 05/07/2007, 08h29
  5. [CSV] problème ouverture fichier csv
    Par BernardT dans le forum Langage
    Réponses: 4
    Dernier message: 17/05/2007, 12h18

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