Fusionner 115 classeurs en une feuilles

Amis du forum Bonjour,

Je viens vers vous car je suis incapable de trouver une réponse simple à ma question.

Comme dis dans le sujet, je dois récupérer les données de 115 classeurs, et les "compiler" sur une feuille.

De plus (c'est le problème majeur) je ne comprends strictement rien aux VBA/Macro. j'ai déjà trouvé quelques formules mais je n'arrive pas à les adapter à mon cas. Effectivement il faut remplacer certains codes mais je ne sais pas lesquels.

J'ai déjà réunis tous les classeurs dans un fichier.

Les feuilles sont identiques (seules les valeurs changent)

Je compte sincèrement sur votre aide car je suis perdu. De plus, j'ai déjà commencer à COPIER/COLLER mais j'ai peur qu'une erreur, un décalage se glisse et cela fausserai complétement les valeurs finales.

Je vous remercie par avance,

très cordialement

Dorian67

Bonjour,

Tu peux t'inspiré de : https://forum.excel-pratique.com/excel/fusionner-plusieurs-classeurs-avec-condition-t81110.html

Par Fred2046 & Lioneloiv2016

Tu créés un répertoire avec un nom simple, tu insères à l'intérieur les fichiers Excel + celui qui va te copier tes feuilles Excel

en espérant t'avoir donné un bon début

crdlt,

André

16tdb-tech.rar (62.87 Ko)

Merci Andre13 pour ta réponse rapide, mais cela me semble encore flou.

Ne faut t'il pas que j'adapte ces formules aux miennes?

Quels éléments dois-je remplacer ?

Cordialement

Re,

Dans un premier temps

Avant d'aller plus loin enregistre ton classeur en prenant en charge les macros, vérifie bien que cette feuille soit bel est bien dans ton répertoire.

Note : lors de l'ouverture de ton classeur si dans le menu tu n'as pas ' Développeur' ( il faudra allé dans Options Excel est le coché)

bon, tu as un répertoire et dans ce répertoire ta feuille (recap par exemple) avec toutes tes feuilles de la même valeur

Sur ta Feuil1 tu auras déjà placé tes entêtes Exemple : NOM, Prénom, etc.

copie tes 115 feuilles dans le même répertoire (pour un test en essayant 10 feuilles au départ)

1/

insères-y un bouton de commande qui s’appellera 'Bouton 1'

on s'en occupera après de ce bouton

retourne dans ton VBA (ALT+F11)

dans le menu de gauche tu verras VBA-project place le curseur de ta souris dessus, effectue un clic droit et insère un module, il s'appellera Module 1, colles-y ce code ci-dessous :

Option Explicit
Sub recupere()
Dim WsS, WsD As Object

Dim Fso As Object
Dim SourceFolder As Object
Dim FileItem As Object
Dim chemin As String
Dim adresse As Range
Dim i, LR As Integer

chemin = ThisWorkbook.Path & "\tdb-tech\"
Set Fso = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = Fso.GetFolder(chemin)
Set WsD = ThisWorkbook.Sheets(1)
'Boucle sur tous les fichiers du répertoire
For Each FileItem In SourceFolder.Files
        If Right(FileItem.Name, 4) = "xlsm" Then
            Workbooks.Open (chemin & FileItem.Name)
            Set WsS = ActiveWorkbook.Sheets(1)
            For i = 2 To WsS.Cells(Rows.Count, "A").End(xlUp).Row 'passe en revu toute les lignes du fichier ouvert(source)

                'on copie les données
               WsS.Range(Cells(i, "A"), Cells(i, "U")).Copy
                'vérification si une entrée existe déjà
               'Si non => ligne de destination = fin du tableau + 1 ligne
               'si oui => ligne de destination = l'entrée précédente
               Set adresse = WsD.[A:A].Find(What:=WsS.Cells(i, "A"), LookAt:=xlPart)
                If adresse Is Nothing Then 'valeur non trouvée
                   LR = WsD.Cells(Rows.Count, "A").End(xlUp).Row + 1
                Else: LR = adresse.Row 'valeur trouvée
               End If
                'collage des données dans le fichier de destination avec le format des cellules
               WsD.Cells(LR, "A").PasteSpecial xlPasteValues
                WsD.Cells(LR, "A").PasteSpecial xlPasteFormats
            Next i
            'fermeture du fichier sans enrefistrement
           ActiveWorkbook.Close False
        End If

Next FileItem 'passe au ficheir suivant
End Sub

enregistre ton classeur (en prenant en charge les macros, ensuite :

a) trouve dans le module ceci :

chemin = ThisWorkbook.Path & "\tdb-tech\"

b) remplace tdb-tech par le nom de ton répertoire

chemin = ThisWorkbook.Path & "\tdb-tech\"

retourne sur ta feuil 1 on s'occupe maintenant de ton bouton (Bouton 1) que tu auras inséré dans ta feuille 1 (menu développeur insérer un contrôle de formulaire --> bouton)

clic gauche enfoncé et glisse-le /dépose-le dans un endroit de ta feuille 1

effectue un clic droit sur ce bouton 1 et affecte lui la macro (normalement elle s’appellera recupere

enregistre ton classeur

et test-le

Rechercher des sujets similaires à "fusionner 115 classeurs feuilles"