Private Sub Workbook_Activate()
Dim chemin$, a, feuille$, fichier, F As Worksheet
chemin = ThisWorkbook.Path & "\" 'à adapter
a = Array("1.xlsx", "2.xlsx", "3.xlsx") 'liste à adapter
feuille = "Tuteur" 'à adapter
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
On Error Resume Next 'sécurité si un fichier n'existe pas
With Feuil1 'CodeName
.Cells.Delete 'RAZ
For Each fichier In a
Set F = Workbooks.Open(chemin & fichier).Sheets(feuille) 'ouverture du fichier
F.UsedRange.Columns(3).ReadingOrder = xlLTR 'de gauche à droite
F.UsedRange.Columns(3) = "=REPT(""" & fichier & """,COUNTA(RC[-2]:RC[-1])>0)"
F.UsedRange.Columns(3) = F.UsedRange.Columns(3).Value 'supprime les formules
F.UsedRange.Copy
If Application.CutCopyMode Then .[A1].Insert xlDown
Application.CutCopyMode = 0
F.Parent.Close False 'fermeture du fichier
Next
.UsedRange.Sort .Columns(1), xlAscending, Header:=xlNo 'tri
.UsedRange.RemoveDuplicates Array(1, 2), Header:=xlNo 'supprime les doublons
.Rows(.[A1].CurrentRegion.Rows.Count + 1 & ":" & .Rows.Count).Delete 'RAZ en dessous
.Columns.AutoFit 'ajustement largeur
With .UsedRange: End With 'actualise la barre de défilement verticale
End With
Application.EnableEvents = True 'réactive les évènements
End Sub