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 :

Découpage d'un fichier CSV


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2015
    Messages : 11
    Par défaut Découpage d'un fichier CSV
    Bonjour,

    Je souhaite découper un fichier CSV avec X lignes, en X fichiers CSV avec pour nom la valeur d'une colonne et en gardant la même structure.
    Exemple :
    TEST.csv avec 3 lignes :
    NOM1;NOM2;ADR1;ADR2;CP;VILLE;123456;TEL;MAIL;INFO
    NOM1;NOM2;ADR1;ADR2;CP;VILLE;567890;TEL;MAIL;INFO
    NOM1;NOM2;ADR1;ADR2;CP;VILLE;1A2B3C4D;TEL;MAIL;INFO

    Résulat souhaité 3 fichiers csv comme suit :
    123456.csv : NOM1;NOM2;ADR1;ADR2;CP;VILLE;123456;TEL;MAIL;INFO
    567890.csv : NOM1;NOM2;ADR1;ADR2;CP;VILLE;567890;TEL;MAIL;INFO
    1A2B3C4D.csv : NOM1;NOM2;ADR1;ADR2;CP;VILLE;1A2B3C4D;TEL;MAIL;INFO

    Comment puis je réaliser cette conversion ?
    Merci de votre aide.

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Si tu veux le faire en automatique, il faut passer par du VBA.

    Le plus simple est d'ouvrir ton fichier CSV avec un Workbooks.OpenTexte, en indiquant que le délimiteur est ";".
    https://msdn.microsoft.com/fr-fr/lib.../ff837097.aspx

    Tu crées un nouveau classeur vide avec un Workbooks.Add qu'on appellera le classeur cible.
    https://msdn.microsoft.com/fr-fr/lib.../ff840478.aspx

    Ensuite tu scrutes l'ensemble de tes lignes avec un For Each ou un For To.
    https://msdn.microsoft.com/fr-fr/lib.../gg251601.aspx
    https://msdn.microsoft.com/fr-fr/lib.../gg264596.aspx

    Pour chaque ligne, tu copies le contenu avec un Copy appliqué à un Row référençant la ligne dans la première ligne du classeur cible.
    https://msdn.microsoft.com/fr-fr/lib.../ff837760.aspx

    Tu enregistres le classeur cible avec un SaveAs, en utilisant comme nom te fichier le contenu de la colonne G de la ligne en cours et spécifiant xlCSV comme FileFormat.
    https://msdn.microsoft.com/fr-fr/lib.../ff841185.aspx

    Quand ton Next a épuisé la liste de lignes, tu fermes le fichier cible avec un Close.
    https://msdn.microsoft.com/fr-fr/lib.../ff838613.aspx

  3. #3
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2015
    Messages : 11
    Par défaut
    Merci pour cette réponse rapide, mais le niveau de l'amateur que je suis en VBA et la réponse de l'expert que vous êtes mon cher Menhir me semble difficile à mettre en oeuvre rapidement. Si je peux avoir des exemples plus précis j'en serai ravi.

  4. #4
    Expert éminent
    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
    Par défaut

    Bonjour,

    alors voir les nombreux exemples sur le sujet dans le bon forum !
    Sans compter les nombreux tutoriels à disposition …

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Stockholm, London, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  5. #5
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2015
    Messages : 11
    Par défaut
    Je me doute qu'il doit y avoir des exemples dans un forum, mais lequel ?
    Ce n'est pas faute d'avoir chercher ....

  6. #6
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut
    bonjour,
    dans VBA --> la fonction split

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    TabElementData = Split("MaLigneDuFichierCSV", Delimiter:=";")
    NomDuFichier=TabElementData(6) & ".csv"
    pour les fichiers recherche --> FileSystemObject
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set FSO = CreateObject("Scripting.FileSystemObject")
    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

Discussions similaires

  1. Mise à jour d'une table avec un fichier csv
    Par blackangel dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 26/05/2005, 14h46
  2. Mettre a jour BD avec fichier csv
    Par Looping94510 dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 07/02/2005, 18h56
  3. Sortir un fichier csv sur base d une requete
    Par Freeman_80 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 12/01/2005, 11h21
  4. Decoupage d'un fichier texte avec cut
    Par tesla dans le forum Linux
    Réponses: 3
    Dernier message: 28/06/2004, 15h39
  5. Réponses: 2
    Dernier message: 14/05/2004, 12h55

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