Regrouper plusieurs fichiers excel en un seul
Résolu
solene77
-
Gabish -
Gabish -
Bonjour,
J'ai une centaine de fichiers excel constitué d'uns seule colonne de données.
Et je souhaiterais les regrouper en un seul fichier excel, sans passer par la fonction copier/coller.
Que faire ?
Merci de votre aide.
J'ai une centaine de fichiers excel constitué d'uns seule colonne de données.
Et je souhaiterais les regrouper en un seul fichier excel, sans passer par la fonction copier/coller.
Que faire ?
Merci de votre aide.
A voir également:
- Macro fusionner plusieurs fichiers excel en un seul
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Renommer plusieurs fichiers en même temps - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Fusionner plusieurs feuilles excel en une seule - Guide
10 réponses
Bonjour,
Sans passer par copier/coller c'est une difficulté supplémentaire inutile,
donc voici une macro avec des copier/ coller (adapter le nom du répertoire) :
Sans passer par copier/coller c'est une difficulté supplémentaire inutile,
donc voici une macro avec des copier/ coller (adapter le nom du répertoire) :
Public Sub Regrouper_Fichiers()
' regroupe dans les colonnes de la feuille 1 d'un fichier,
' la colonne A de chaque fichier excel d'un répertoire.
'
Dim fso As Object 'Système de fichiers
Dim rep As Object 'Répertoire
Dim cfr As Object 'Collection de fichiers du répertoire
Dim fic As Object 'Fichier (élément de la collection cfr)
Dim wbk As Workbook 'Classeur
Dim res As Workbook 'Classeur resultat
Dim rng As Range 'Plage de cellules
Dim dst As Range 'Cellule de destination
Dim pth As String 'Chemin du répertoire
' Définir le répertoire à lire
pth = "D:\TEMP"
' Créer le fichier résultat
Set res = Workbooks.Add(xlWBATWorksheet)
Set dst = res.Worksheets(1).Range("A1")
' Lecture du répertoire
Set fso = CreateObject("Scripting.FileSystemObject")
Set rep = fso.GetFolder(pth)
Set cfr = rep.Files
' Contrôler chaque fichier du répertoire
For Each fic In cfr
' - Vérifier s'il s'agit d'un fichier Excel...
If StrComp(fso.GetExtensionName(fic.Name), "xlsx", vbTextCompare) = 0 Then
' ... dans l'affirmative, ouvrir le fichier et mettre à jour les liaisons
Set wbk = Workbooks.Open(Filename:=pth & "\" & fic.Name, UpdateLinks:=xlUpdateLinksAlways)
' Placer le nom du fichier en titre de colonne résultat
dst.Value = fic.Name
' Copier la colonne en dessous
Set rng = wbk.Worksheets(1).UsedRange.Columns(1)
rng.Copy dst.Offset(1)
' Fermer le fichier sans le modifier
wbk.Close False
' Destination sur colonne suivante
Set dst = dst.Offset(0, 1)
End If
Next fic
End SubSi tes fichiers sont au format xls au lieu de xlsx, corriges la ligne 27