Consolider des fichiers dans un seul fichier

Martin DUFOURCQ

XLDnaute Nouveau
Bonjour,

n'étant vraiment bon dans la manipulation des macros, je demande un peu d'aide aux experts...

Voilà mon problème. Je reçois régulièrement 30 fichiers excel. Tous n'ont qu'un seul onglet et sont dans le même format (seul le nom du fichier et de l'onglet change, ils sont propres à la société me faisant un retour).

J'aimerai savoir s'il est possible, depuis un fichier que j'appellerai "Conso" d'avoir un bouton qui m'ouvre une boite de dialogue pour choisir le fichiers dont je souhaite importer les onglets via un copier / coller?

J'ai trouvé pleins de posts sur l'import de données mais jamais avec une boite de dialogue permettant de choisir les fichiers sources.

Je vous remercie de votre aide,
 

Martin DUFOURCQ

XLDnaute Nouveau
Re : Consolider des fichiers dans un seul fichier

Mromain,

merci de ta réponse.. Cependant, je ne sais pas comment compiler cette fonction d'ouverture de boite de dialogue avec le fait que les fichiers que je sélectionne doit être pris en compte pour l'import (copier/coller) de leurs onglets vers mon fichier de consolidation...

Cela dit, merci beaucoup,
 

mromain

XLDnaute Barbatruc
Re : Consolider des fichiers dans un seul fichier

re bonjour,

dans ton fichier de "consolidation", tu mets cette macro :

Code:
Dim fileName As String, nbFiles As Integer, curfile, curWbk As Workbook, FD As FileDialog
Set FD = Application.FileDialog(msoFileDialogFilePicker)

FD.AllowMultiSelect = True    [COLOR="Green"]'autoriser la sélection de plusieurs fichier[/COLOR]
FD.Filters.Clear    [COLOR="Green"]'RAZ des filtres de fichiers[/COLOR]
FD.Filters.Add Description:="Excel Files", Extensions:="*.xls;*.xlsx"    [COLOR="Green"]'filtrer sur les fichiers excel[/COLOR]
FD.Show     [COLOR="Green"]'afficher la boite de dialogue[/COLOR]

For Each curfile In FD.SelectedItems    [COLOR="Green"]'pour chaque fichier séléctionné[/COLOR]
    Set curWbk = Application.Workbooks.Open(fileName:=curfile)    [COLOR="Green"]'ouvrir le classeur[/COLOR]
    curWbk.Sheets([B][COLOR="Red"]1[/COLOR][/B]).Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)    [COLOR="Green"]'copier la feuille 1 après la dernière feuille de ce classeur[/COLOR]
    curWbk.Close savechanges:=False    [COLOR="Green"]'fermer le classeur sans sauvegarder[/COLOR]
Next curfile

cette macro ouvre chaque classeur sélectionné dans la boite de dialogue, copie la première feuille et la colle à la suite de ton classeur de "consolidation".

tu peux modifier le 1 par "nom de ta feuille", si tous les classeurs on le même nom d'onglet.

a+
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz