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 :

copier plusieurs fichiers texte dans un seul fichier texte


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 52
    Points : 48
    Points
    48
    Par défaut copier plusieurs fichiers texte dans un seul fichier texte
    Salut
    j ai dans ma macro 5 fichiers text ( ficchier1.txt, fichier2.txt...), j aimerais copier tous ces fichiers dans un seul fichier. j ai essayer de le faire sous une fenetre excel mais sa na pas marcher parceque les fichiers sont trop long.
    quelle methode dois je utiliser pour ecrire cette macro sous vba?
    merci
    A plus

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Bonjour,

    Si la somme totale des tailles de tes fichiers n'excède pas 2 GO (ce qui est déjà assez énorme) :

    Va lire dans cette discussion :

    http://www.developpez.net/forums/d59...txt-vba-excel/

    - attarde-toi à la méthode décrite en message 5 pour lire dans une variable la totalité d'un fichier
    - crée autant de variables aunsi alimentées que de fichiers à "concaténer".

    - ouvre ton fichier de destination et écris-y (par Open for Output) le contenu de toutes ces variables.

  3. #3
    Membre éprouvé
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Points : 1 191
    Points
    1 191
    Par défaut
    Bonjour,

    Citation Envoyé par ERICKO Voir le message
    j ai dans ma macro 5 fichiers text ( ficchier1.txt, fichier2.txt...),
    comment cela dans ta macro ?






    pour ne pas multiplier inutilement les variables voir aussi le mode append de l'instruction Open
    JacqueS.

    Ps: je ne télécharge les piéces jointes qu'en dernier recours .(et encore...)

    Pour devenir mon ami laissez moi un message

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Tu as une commande simple, utilisant le dos, pour fusionner autant de fichiers texte que tu le souhaites :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub test()
    Shell ("cmd /c copy d:\txt\fichier1.txt+d:\txt\fichier3.txt d:\txt\fichier4.txt")
    End Sub
    Où "d:\txt\fichier4.txt" est le nouveau fichier contenant les deux fichiers précédents.
    Tu peux remplacer le nom de tes fichiers par des variables.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Shell ("cmd /c copy " & var1 & "+" & var2 & " " & var3)
    Bonne journée

    NB - J'ignore si cette syntaxe fonctionne avec Vista (?)

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonsoir


    une autre possibilité qui boucle sur tous les fichiers txt d'un répertoire et regroupe leur contenu dans un nouveau fichier texte.


    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    'Nécessite d'activer la référence
    '"Microsoft ActiveX Data Objects 2.x Library"
    '
    Dim Rc As ADODB.Recordset
    Dim cn As String, Chemin As String, Fichier As String, x As String
    Dim i As Long
     
    'répertoire contenant les fichiers texte
    Chemin = "C:\dossier"
     
    'Ouvre un nouveau fichier Texte pour compiler les données
    '! attention à ne pas le placer dans le meme repertoire que les autres fichiers...
    Open "C:\Compilation.txt" For Output As #1
     
        'boucle sur l'ensemble des fichiers txt
        Fichier = Dir(Chemin & "\*.txt")
        Do While Fichier <> ""
     
            '----- requète pour récupérer le contenu du fichier txt
            cn = "Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
            "Dbq=" & Chemin & ";Extensions=asc,csv,tab,txt"
     
            Set Rc = New ADODB.Recordset
            Rc.Open Source:="SELECT * FROM [" & Fichier & "]", ActiveConnection:=cn
     
            '--- recuperation de la première ligne
            For i = 0 To Rc.Fields.Count - 1
            x = x & Rc.Fields(i).Name & ";"
            Next i
            Print #1, Left(x, Len(x) - 1) & vbCrLf;
            '---
     
            Print #1, Rc.GetString(adClipString, -1, ";", vbCrLf, "")
            Rc.Close
            x = ""
            '-------------------------
     
        Fichier = Dir
        Loop
     
    'Fermeture du fichier Compilation
    Close #1
     
    MsgBox "Opération terminée"

    bonne soirée
    michel

Discussions similaires

  1. [XL-2007] Fusion plusieurs feuilles excel dans un seul fichier
    Par meumeu73.1 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/06/2013, 10h13
  2. Cacher plusieurs fichiers Word dans un seul fichier Word.
    Par Betadine dans le forum VBA Word
    Réponses: 7
    Dernier message: 06/10/2011, 17h30
  3. [PPT-2003] Copier le contenus de plusieurs cellules Excel dans une seule liste-texte ppt
    Par mimilll dans le forum VBA PowerPoint
    Réponses: 8
    Dernier message: 02/06/2009, 20h45
  4. [Excel] Afficher plusieurs fichiers excel dans un seul fichier
    Par naru40001 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 07/01/2009, 15h50
  5. Copier plusieurs fichier txt dans un seul fichier
    Par vieri31 dans le forum C++Builder
    Réponses: 3
    Dernier message: 31/05/2008, 14h57

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