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 :

Concaténation de fichier csv avec gestion d'entête [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 88
    Par défaut Concaténation de fichier csv avec gestion d'entête
    Bonjour,

    Je voudrais concaténer tout les fichiers CSV du répertoire "CSV" vers un fichier ConcatCSV.csv
    - Tous les fichiers CSV ont la même entête, donc dans le fichier CSV final "ConcatCSV.csv" l'entête doit être copier que sur la première ligne.
    - Les fichiers doivent être ajouter dans l'ordre, ils suivent ce format: Machine1_OPC_YYYY-MM-JJ_hhHmm_ss (un fichier toutes les 10 minutes) donc on peut ne pas tenir compte des secondes.
    - Créer un nouveau fichier final tout les mois

    autres étapes:
    - Supprimer toutes les lignes identique du nouveau fichier ( limiter la recherche sur x dernière ligne)
    - Remplacer toutes les valeurs "undef" par 0 dans le nouveau fichier ( limiter la recherche sur x dernière ligne)

    Je vous fait suivre le début de mon travail en pièce jointe.

  2. #2
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 176
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    Power Query semble l'outil adapté pour votre demande

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 547
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 547
    Par défaut
    Citation Envoyé par dudux2 Voir le message
    Je vous fait suivre le début de mon travail en pièce jointe.
    Elle est où la pièce jointe ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 88
    Par défaut
    Bonjour,
    Oh oui je rajoute mon fichier avec le code
    FileConcatenation1.xlsm

    Je rencontre une erreur de compilation "erreur de syntaxe" que je n'arrive pas à résoudre... lord de l'appel de mon Sub: "DeplacerFichier(FullPathCsvFile, CheminCsvAchives)"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Private Sub DeplacerFichier(FullPathFile As String, DestinationPath As String)
        Dim objOFS As Object
     
        Set objOFS = CreateObject("Scripting.FileSystemObject")
        Rem Test si au moins nun fichier present
        If Dir(FullPathFile) <> "" Then
            objOFS.moveFile FullPathFile, DestinationPath
        End If
     
        Set objOFS = Nothing
     
    End Sub
    PS: C'est normale de ne pas pouvoir modifier son premier poste? J'aurais aimé le mettre à jour...

    D'avance Merci

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Comme expliqué plus haut, Power Query est l'outil dédié à ce genre d'opération.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 88
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message
    Bonjour,
    Comme expliqué plus haut, Power Query est l'outil dédié à ce genre d'opération.
    Bonjour,

    Mon code est à 90% fonctionnel, je souhaite le terminé, si j'en vois la nécessité de faire une mise à jour avec Power query pour des options plus avancées dans le tri de données, je referais mon code.
    Pour le moment, je souhaite juste trouvé la source de mon erreur.

  7. #7
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je rencontre une erreur de compilation "erreur de syntaxe" que je n'arrive pas à résoudre... lord de l'appel de mon Sub: "DeplacerFichier(FullPathCsvFile, CheminCsvAchives)"
    Il aurait été plus judicieux de publier la ligne où a lieu l'appel de cette procédure. Cela nous aurait permis de vous donner immédiatement la raison du problème

    J'ai ouvert votre classeur et j'ai compilé le programme. L'erreur de syntaxe à lieu sur cette ligne DeplacerFichier(FullPathCsvFile, CheminCsvAchives). Vous utilisez l'appel comme une fonction et pas comme une SUB. Enlevez les parenthèses et cela ira nettement mieux soit DeplacerFichier FullPathCsvFile, CheminCsvAchives
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 88
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message
    Bonjour,

    Il aurait été plus judicieux de publier la ligne où a lieu l'appel de cette procédure. Cela nous aurait permis de vous donner immédiatement la raison du problème

    J'ai ouvert votre classeur et j'ai compilé le programme. L'erreur de syntaxe à lieu sur cette ligne DeplacerFichier(FullPathCsvFile, CheminCsvAchives). Vous utilisez l'appel comme une fonction et pas comme une SUB. Enlevez les parenthèses et cela ira nettement mieux soit DeplacerFichier FullPathCsvFile, CheminCsvAchives
    En effet, j'ai fais l’amalgame entre sub et function

    Je vais creusé du côté de Power Query en effet, cela me parait plus adapté pour certaine section de mon code que je n'ai pas encore réalisé.

    Merci beaucoup

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 88
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message
    Bonjour,

    Il aurait été plus judicieux de publier la ligne où a lieu l'appel de cette procédure. Cela nous aurait permis de vous donner immédiatement la raison du problème

    J'ai ouvert votre classeur et j'ai compilé le programme. L'erreur de syntaxe à lieu sur cette ligne DeplacerFichier(FullPathCsvFile, CheminCsvAchives). Vous utilisez l'appel comme une fonction et pas comme une SUB. Enlevez les parenthèses et cela ira nettement mieux soit DeplacerFichier FullPathCsvFile, CheminCsvAchives

    Merci beaucoup

    J'ai en effet fait l’amalgame d'écriture entre Sub et Function...

    Je vais faire des essais avec POWER QUERY qui pourras alléger les ressources pour certaines tâches que j'ai à réalisé.

  10. #10
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je vais creusé du côté de Power Query en effet, cela me parait plus adapté pour certaine section de mon code que je n'ai pas encore réalisé.
    C'est la meilleure décision que vous pourrez prendre.
    J'ai 25 ans d'expérience en VBA mais depuis 5 ans, je n'utilise que Power Query pour charger et transformer les données. On gagne en temps de développement.
    Pour charger les fichiers présents dans un répertoire en filtrant le type de fichier, transformer, ajouter des colonnes. Cela ne prends pas plus de 30 minutes.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 24/04/2012, 13h53
  2. Charger un Fichier CSV avec traitement
    Par Iphelias dans le forum SQL Procédural
    Réponses: 9
    Dernier message: 06/08/2007, 13h53
  3. Réponses: 2
    Dernier message: 13/03/2007, 11h19
  4. Update fichier CSV avec ADO et Windev
    Par bastiencb dans le forum Autres SGBD
    Réponses: 1
    Dernier message: 13/12/2006, 16h27
  5. [CSV] Affichage d'un fichier csv avec pagination
    Par arnoweb dans le forum Langage
    Réponses: 4
    Dernier message: 26/07/2006, 15h13

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