Excel : Fusionner plusieurs fichier XLS
Résolu
piroc
Messages postés
61
Date d'inscription
Statut
Membre
Dernière intervention
-
Reny -
Reny -
Bonjour à tous,
Je suis sous Excel 2007
J'ai plusieurs fichier XLS où il y a des tableaux.
J'aimerai savoir s'il est possible, par une quelconque manière, de faire en sorte que tous les fichier sélectionnés XLS s'ouvre dans un seule et même fichier XLS.
De se fait, tous les tableaux se "suivrons" en gardant leur colonnes identiques.
Il y a bien sur le copier/coller, mais j'ai énormément de fichier XLS à traiter...
Si vous avez des solution pour Excel 2010/2013, je suis preneur :)
Merci à tous.
Je suis sous Excel 2007
J'ai plusieurs fichier XLS où il y a des tableaux.
J'aimerai savoir s'il est possible, par une quelconque manière, de faire en sorte que tous les fichier sélectionnés XLS s'ouvre dans un seule et même fichier XLS.
De se fait, tous les tableaux se "suivrons" en gardant leur colonnes identiques.
Il y a bien sur le copier/coller, mais j'ai énormément de fichier XLS à traiter...
Si vous avez des solution pour Excel 2010/2013, je suis preneur :)
Merci à tous.
A voir également:
- Excel : Fusionner plusieurs fichier XLS
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel moyenne - Guide
5 réponses
Salut,
en modifiant légerement la macro donnée plus haut (modifs en gras):
A+
On entend par une belle solution, la solution simple et facile d'un problème difficile et compliqué
en modifiant légerement la macro donnée plus haut (modifs en gras):
Sub regroupe() Dim chemin As String ' classeur regroupé Dim rep As String ' répertoire à traiter Dim fic As String ' classeur regroupé Dim ligne As Long ' ligne écriture Dim nbc As Integer ' nombre de classeurs Dim Wf As Worksheet ' feuille regroupement Dim Wl As Worksheet ' feuille regroupée rep = ThisWorkbook.Path & "\" Application.ScreenUpdating = False Application.EnableEvents = False Application.DisplayAlerts = False On Error GoTo fin Set Wf = ThisWorkbook.ActiveSheet ' variable feuille groupe Wf.Cells.ClearContents nbc = 0: nbf = 0 ' initialisation variables ligne = 1 fic = Dir(rep & "*.xls") ' recherche fichiers While fic <> "" If fic <> ThisWorkbook.Name Then chemin = rep & fic ' chemin fichiers Workbooks.Open chemin, 0 ' ouverture Set Wl = ActiveWorkbook.Sheets(1) Wl.Copy After:=Wf Workbooks(fic).Close SaveChanges:=False ' Fermeture du classeur nbc = nbc + 1 End If fic = Dir Wend fin: MsgBox nbc & " classeurs regroupés" Application.ScreenUpdating = True Application.EnableEvents = True Application.DisplayAlerts = True End Sub
A+
On entend par une belle solution, la solution simple et facile d'un problème difficile et compliqué
J'ai bien corrigé et simplifié la macro plus haut, j'étais aussi allé un peu vite avec la macro de gbinforme, merci tompols :)
Celle-ci marche bien, en créant une nouvelle feuille pour chaque classeur à insérer :
Il faut :
_créer un classeur dans le dossier où se situent tous tes classeurs à regrouper
_l'appeler comme bon te semble
_l'ouvrir et appuyer sur Alt+F11 (l'éditeur VBA s'ouvre)
_dans ThisWorkbook (par exemple), colle la macro ci-dessus, et exécute la en appuyant sur F5.
Chez moi ça fonctionne :-)
-------------------
Cordialement,
Clément
Celle-ci marche bien, en créant une nouvelle feuille pour chaque classeur à insérer :
Sub regroupe() Dim chemin As String Dim rep As String Dim fic As String Dim Wf As Workbook Dim source As Range rep = ThisWorkbook.Path & "\" Application.ScreenUpdating = False Application.EnableEvents = False Application.DisplayAlerts = False Set Wf = ThisWorkbook fic = Dir(rep & "*.xls") ' recherche fichiers While fic <> "" If fic <> ThisWorkbook.Name Then chemin = rep & fic ' chemin fichiers Workbooks.Open chemin, 0 ' ouverture Set source = ActiveWorkbook.Sheets(1).Range("A1:IV65000") Wf.Sheets.Add source.Copy With Wf.Sheets(1) .Cells(1).PasteSpecial Paste:=8 .Cells(1).PasteSpecial Paste:=xlPasteValues .Cells(1).PasteSpecial Paste:=xlPasteFormats Application.CutCopyMode = False End With ActiveWorkbook.Close End If fic = Dir Wend End Sub
Il faut :
_créer un classeur dans le dossier où se situent tous tes classeurs à regrouper
_l'appeler comme bon te semble
_l'ouvrir et appuyer sur Alt+F11 (l'éditeur VBA s'ouvre)
_dans ThisWorkbook (par exemple), colle la macro ci-dessus, et exécute la en appuyant sur F5.
Chez moi ça fonctionne :-)
-------------------
Cordialement,
Clément
Il c'est arrêter au 18ème classeurs.
Je vais tout supprimer et relancer pour voir
Mais petit problème. Donc la VBA me met tout les classeurs dans un seul et même classeur (global.xls) ce qui est génial. Mais chaque tableau et sur une feuille différente, j'aurais aimais avoir tout sur la même feuille...
Je vais tout supprimer et relancer pour voir
Mais petit problème. Donc la VBA me met tout les classeurs dans un seul et même classeur (global.xls) ce qui est génial. Mais chaque tableau et sur une feuille différente, j'aurais aimais avoir tout sur la même feuille...
Re,
Voici une macro de gbinforme qui fonctionne chez moi (une macro trouvée en prenant le premier résultat d'une recherche google au fait ;))
Attention, il faut que le classeur où tout sera regroupé s'appelle "global.xls" et qu'il soit placé dans le même dossier que tous les autres:
Voici une macro de gbinforme qui fonctionne chez moi (une macro trouvée en prenant le premier résultat d'une recherche google au fait ;))
Attention, il faut que le classeur où tout sera regroupé s'appelle "global.xls" et qu'il soit placé dans le même dossier que tous les autres:
Sub regroupe() Dim chemin As String ' classeur regroupé Dim rep As String ' répertoire à traiter Dim fic As String ' classeur regroupé Dim ligne As Long ' ligne écriture Dim nbc As Integer ' nombre de classeurs Dim nbf As Integer ' nombre de feuilles Dim nbl As Integer ' nombre de lignes Dim c As Integer ' nombre de colonnes Dim l As Long ' ligne lecture Dim Wf As Worksheet ' feuille regroupement Dim Wl As Worksheet ' feuille regroupée rep = ThisWorkbook.Path & "\" Application.ScreenUpdating = False Application.EnableEvents = False Application.DisplayAlerts = False On Error GoTo fin Set Wf = ThisWorkbook.ActiveSheet ' variable feuille groupe Wf.Cells.ClearContents nbc = 0: nbf = 0 ' initialisation variables ligne = 1 fic = Dir(rep & "*.xls") ' recherche fichiers While fic <> "" If fic <> ThisWorkbook.Name Then chemin = rep & fic ' chemin fichiers Workbooks.Open chemin, 0 ' ouverture Set Wl = ActiveWorkbook.Sheets(1) nbl = Wl.UsedRange.Rows.Count c = Wl.UsedRange.Columns.Count If ligne > 2 Then l = 2 Else l = 1 ' une seule fois le titre Wl.Cells(l, 1).Resize(nbl, c).Copy Destination:=Wf.Cells(ligne, 1) ligne = ligne + nbl - l + 1 nbf = nbf + 1 ActiveWorkbook.Close SaveChanges:=False ' Fermeture du classeur nbc = nbc + 1 End If fic = Dir Wend fin: MsgBox nbc & " classeurs regroupés avec " & nbf & " feuilles et " & ligne & " lignes" Application.ScreenUpdating = True Application.EnableEvents = True Application.DisplayAlerts = True End Sub
Je n'est jamais utilisé de macro ....
Comment dois-je procéder ?
J'ai mon dossier où il y a tous mes fichier XLS: C:\Documents and Settings\Dell\Bureau\SOL 4\1
J'y est crée un fichier XLS vide appelé global.xls
Lancer le fichier XLS de @gbinforme http://cjoint.com/12ma/BCAxswLpCvy.htm
Activé la macro (Option -> Activer ce contenu -> OK)
et j'ai un message: "0 classeurs regroupés avec 0 feuilles et 1 lignes"
Comment dois-je procéder ?
J'ai mon dossier où il y a tous mes fichier XLS: C:\Documents and Settings\Dell\Bureau\SOL 4\1
J'y est crée un fichier XLS vide appelé global.xls
Lancer le fichier XLS de @gbinforme http://cjoint.com/12ma/BCAxswLpCvy.htm
Activé la macro (Option -> Activer ce contenu -> OK)
et j'ai un message: "0 classeurs regroupés avec 0 feuilles et 1 lignes"
Bonjour, en fait j'aimerai de l'aide de votre part, j'ai 60 fichiers Excel ou j'ai des informations dans la colonne K de 9 à 30. je voudrais sans ouvrir les 60 fichiers copier les cases de K9 à K30 de tous les classeurs l'une a la suite de l'autre dans un nouveau classeur nommer par exemple Evolution et en commençant par exemple a partir de la case F9 à F30, la seconde copie serait elle sur les case G9 a G30 et ainsi de suite. Les classeurs a copier sont nommé en reprenant a la fin la semaine et l'année XXXXX-01-2013. La compilation doit prendre en compte semaine après semaine de les prises de références. Une fois que j'ai regroupé ses donnée je doit créer un graphique montrant l'évolution des données.
En vous remerciant d'avance.
En vous remerciant d'avance.
Bonjour,
J'ai utilisé la macro qui regroupe tous les fichiers dans une seule et même feuille, en mettant tout à la suite.
chacuns de mes fichiers comportent un tableau. Pensez-vous qu'il serait possible de remplir les tableaux dans le fichier "global" et qu'ils soient simultanément rempli dans chacuns de leur fichier source??
Merci d'vance pour votre aide
J'ai utilisé la macro qui regroupe tous les fichiers dans une seule et même feuille, en mettant tout à la suite.
chacuns de mes fichiers comportent un tableau. Pensez-vous qu'il serait possible de remplir les tableaux dans le fichier "global" et qu'ils soient simultanément rempli dans chacuns de leur fichier source??
Merci d'vance pour votre aide
Bonjour,
Merci beaucoup pour cette macro qui m'a déjà fait gagné beaucoup de temps.
J'aurais juste deux questions qui me permettraient d'en gagner encore plus.
Est-il possible d'importer chaque onglet les uns à coté des autres (au lieu des uns sous les autres) ?
Est-il possible de n'importer qu'une plage de celulles (la plage F7:F37 présente sur chacun des classeurs) ?
Merci par avance!
Merci beaucoup pour cette macro qui m'a déjà fait gagné beaucoup de temps.
J'aurais juste deux questions qui me permettraient d'en gagner encore plus.
Est-il possible d'importer chaque onglet les uns à coté des autres (au lieu des uns sous les autres) ?
Est-il possible de n'importer qu'une plage de celulles (la plage F7:F37 présente sur chacun des classeurs) ?
Merci par avance!
Bonjour,
Soyons précis, un fichier xls est un classeur Excel qui contient des feuilles de calcul.
Ton besoin est de mettre toutes les feuilles de tous les classeurs dans un seul classeur ?
Ou de fusionner toutes les feuilles pour ne faire qu'une seule feuille excel en un classeur ?
Soyons précis, un fichier xls est un classeur Excel qui contient des feuilles de calcul.
Ton besoin est de mettre toutes les feuilles de tous les classeurs dans un seul classeur ?
Ou de fusionner toutes les feuilles pour ne faire qu'une seule feuille excel en un classeur ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai le même résultat, sans le message "0 classeurs regroupés avec 0 feuilles et 1 lignes"