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 :

Conversion de plusieurs fichiers csv en xls


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 13
    Points : 14
    Points
    14
    Par défaut Conversion de plusieurs fichiers csv en xls
    Bonjour,
    j'ai plusieurs fichiers csv que je dois convertir en format xls. Cela me prendrait beaucoup de temps à les transformer un à un. J'en ai 654. Y'a t-il une maco ou une technique me permettant de convertir à la fois tous mes fichiers.
    Merci d'avance pour votre aide.

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    La fonction split est faite pour toi. Tu ouvres une instance tu splites et tu saves..

  3. #3
    Invité
    Invité(e)
    Par défaut Bonjour, regarde ça
    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
    Sub test()
    Dim Rep As String
    Dim Fichier As String
    Dim NumFichier As Long
    Rep = ActiveWorkbook.Path
    Fichier = Dir(Rep & "\csv\*.csv")
    While Fichier <> ""
        ImportCsv Rep & "\csv\" & Fichier, ActiveWorkbook.Worksheets(3)
        Fichier = Dir
    Wend
    End Sub
     
    Sub ImportCsv(Fichier As String, Feulle As Worksheet)
    Dim NumFichier As Long
    Dim L As Long
    Dim Tableau
    Dim Text As String
    L = Feulle.UsedRange.Rows.Count
    If Trim("" & Feulle.Cells(L, 1)) <> "" Then L = L + 1
    NumFichier = FreeFile
    Open Fichier For Input As #NumFichier
    While EOF(NumFichier) = False
        Line Input #NumFichier, Text
        Tableau = Split(Text, ";")
        Feulle.Range(Feulle.Cells(L, 1), Feulle.Cells(L, UBound(Tableau))) = Tableau
        L = L + 1
    Wend
    Close #NumFichier
     
     
    End Sub

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 13
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par EngueEngue Voir le message
    La fonction split est faite pour toi. Tu ouvres une instance tu splites et tu saves..
    Merci pour ton aide EngueEngue,
    peux-tu être un peu plus clair par ailleurs . J'ai du du mal à appliquer ta méthode.
    Merci

  5. #5
    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,

    une de mes deux autres solutions consiste dans un premier temps
    à utiliser l'Enregisteur de macros pour te donner une base de code
    vu qu'Excel sait bien lire des fichiers .csv, si tous les fichiers ont bien la même structure …

    L'autre ressemble à celle de Robert en un peu plus rapide
    (lecture d'un fichier d'un Mo en moins d'un dizième de seconde … tout dépend en fait du processeur)
    mais sans fichier .csv joint pour étudier la structure, je ne l'envisage même pas …

    __________________________________________________________________________________________
    Question bien formulée, solution assurée ! (Robert Durupt)

  6. #6
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 13
    Points : 14
    Points
    14
    Par défaut
    Bonjour Marc,
    merci pour ton aide.
    tu trouveras ci-joint quelques fichiers que l'on pourra utiliser comme exemple.
    Les fichiers ont tous la même structure: mêmes nombres de colonnes, séparés par des point virgules....

  7. #7
    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
    Akane69, retire ce fichier vu qu'il y a l'air d'y avoir des données confidentielles ‼

    Sinon il y a un passage à la ligne pour chaque enregistrement ?

    Et par fichier .csv il doit y avoir un .xls ?



  8. #8
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 13
    Points : 14
    Points
    14
    Par défaut
    J'ai une macro qui me permet de regrouper les fichiers dans le même classeur (puisque je dois compiler les données ensuite...) mais elle me les met systématiquement sous un format avec des points virgules comme séparateur, c'est cela que je veux eviter au fait. Dois-je donc mettre les extensions en .xls? Si c'est le cas, as-tu une idée de la manière de procéder? on a quand même + de 600 fichiers.

  9. #9
    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
    Si tu as déjà la macro qui fait l'importation !

    Pour enregistrer le classeur, voir la méthode SaveAs de l'objet Workbook et notamment son argument FileFormat

    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …


    __________________________________________________________________________________________
    Comment les huissiers préfèrent-ils leur viande ? Bien saisie évidemment ‼

Discussions similaires

  1. Conversion fichier .csv en .xls
    Par Peachplume dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 05/03/2008, 09h27
  2. conversion d'un fichier csv en xls
    Par yandoka dans le forum Langage
    Réponses: 11
    Dernier message: 23/07/2007, 16h37
  3. Lire un fichier CSV ou XLS de la même manière
    Par Linio dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/07/2007, 15h12
  4. Ouvrir et modifier plusieurs fichiers .csv.
    Par jackfred dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/07/2007, 12h06
  5. Enregistrer un fichier ".CSV" en ".XLS"
    Par Isa31 dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 13/03/2006, 14h05

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