Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide Recherche
456 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

---------------
Contribution : Excel / Word / PDF avec Acrobat Pro et PDFCreator http://www.developpez.net/forums/d [...] dfcreator/
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
 


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-2013 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Avis LDLC / LesNumeriques.com