Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2841 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Fusionner plusieurs fichiers CVS un seul fichier excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Fusionner plusieurs fichiers CVS un seul fichier excel

n°2142912
baraka01
Posté le 18-05-2012 à 17:06:37  profilanswer
 

Bonjour à tous,
 
Pour une tache assez récurrente, je souhaiterai disposai d'une macro qui me permettrai de fusionner plusieurs fichiers excel dans un seul fichier, sachant que ces fichiers ont le même nombre de colonne mais par forcément le même nombre de lignes.
 
Quelqu'un pourrait-il m'aider?
 
Je me débrouille plutôt bien avec excel, mais en vba pas encore assez performant.
 
Merci pour vos réponses.
 
Cdt
 
Salem
 
 
 
 


---------------
Salem
mood
Publicité
Posté le 18-05-2012 à 17:06:37  profilanswer
 

n°2142920
kiki29
Posté le 18-05-2012 à 18:35:53  profilanswer
 

Salut, à adapter à ton contexte, c'est une version qui fonctionne même si elle m'apparait un peu bestiale
Affecter un bouton à la procédure SelDossierCSV
 
J'ai supposé qu'il s'agissait de fichiers CSV et non CVS.

Option Explicit
 
Private Sub ConcatenationCSV(sDossier As String)
Dim Wkb As Workbook
Dim sChemin As String, sFichier As String
Dim LastRow As Long, iRow As Long
Dim c As Range, Ar() As String
Const sSeparateur As String = ";"
 
    Application.ScreenUpdating = False
     
    sChemin = sDossier & "\"
    sFichier = Dir$(sChemin & "*.csv" )
 
    Feuil1.Cells.Clear
    Do While Len(sFichier) > 0
     
        Set Wkb = Workbooks.Open(sChemin & sFichier)
        LastRow = Wkb.Sheets(1).Cells(Wkb.Sheets(1).Rows.Count, 1).End(xlUp).Row
 
        With Feuil1
            For Each c In Wkb.Sheets(1).Range("A1:A" & LastRow)
                iRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
                Ar = Split(c, sSeparateur)
                .Range(.Cells(iRow, 1), .Cells(iRow, UBound(Ar) + 1)).Value = Ar
            Next c
        End With
         
        Wkb.Close
        Set Wkb = Nothing
         
        sFichier = Dir$()
    Loop
    Application.ScreenUpdating = True
End Sub
 
Sub SelDossierCSV()
    With Application.FileDialog(msoFileDialogFolderPicker)
        .InitialFileName = ThisWorkbook.Path & "\"
        .Title = "Dossier CSV à traiter"
        .AllowMultiSelect = False
        .ButtonName = "Sélection Dossier"
        .Show
        If .SelectedItems.Count > 0 Then
            DoEvents
            ConcatenationCSV .SelectedItems(1)
        End If
    End With
End Sub


Message édité par kiki29 le 18-05-2012 à 22:56:29

---------------
Myanmar 90/91 : http://gadaud.gerard.free.fr/publi [...] index.html
n°2143290
baraka01
Posté le 22-05-2012 à 11:41:40  profilanswer
 

Bonjour
 
j'ai testé le code.
 
CA fonctionne très bien.
 
Merci infiniment pour ton aide.
 
Je vais désormais gagné beaucoup de temps.
 
cdt
 
Salem
 

n°2332256
rafale2
Posté le 24-04-2019 à 07:47:32  profilanswer
 

Bonjour à tous,
 
Je déterre un vieux message concernant la fusion de fichiers CSV. J'ai tenté d'utiliser la macro ci-dessus. elle fonctionne correctement jusqu'au moment où une cellule comporte une virgule ",". Tout s'efface après la virgule jusqu'à la ligne suivante.
J'ai essayé de remplacer les virgules par des traits "-" avant le split mais je n'y arrive pas.
J'ai mis l'instruction c.value= replace(c, ",", "-" ).
Une bonne âme pourra elle m'aider. Merci à tous.

n°2336563
daniel-12
Posté le 08-07-2019 à 21:55:07  profilanswer
 

si tous les fichiers CSV sont dans le mème répertoire, une ligne de commande permet de le faire encore plus simplement
 
copy *.csv result.csv


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Fusionner plusieurs fichiers CVS un seul fichier excel

 

Sujets relatifs
changer la date de modification de certains fichierles fichiers
Récupération de données dans un fichier HTML[C] Remplir un tableau 2 dimensions avec un fichier
inserer une ligne grace a un bouton vba/excelbug sur fichier excel
Écriture dans un fichier[Résolu] [KSH] Executer plusieurs commandes dans une variable
Lecture de fichier 
Plus de sujets relatifs à : Fusionner plusieurs fichiers CVS un seul fichier excel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR