Sub MAJ()
Dim chemin$, fichier$, feuille$, ncol%, lig&, f$, derlig As Variant, ad$
chemin = ThisWorkbook.Path & "\" 'à adapter événtuellement
fichier = Dir(chemin & "*.xlsx") '1er fichier du dossier
feuille = "Feuil1" 'nom de la feuille à copier dans les fichiers
Application.ScreenUpdating = False
With Feuil1 'CodeName de la feuille des résultats, à adapter
.Rows("2:" & Rows.Count).Delete xlUp 'RAZ
ncol = .[A1].CurrentRegion.Columns.Count
lig = 2
While fichier <> ""
f = "'" & chemin & "[" & fichier & "]" & feuille & "'!"
derlig = ExecuteExcel4Macro("MATCH(9^99," & f & "R1C1:R1048576C1)")
If IsNumeric(derlig) Then
If derlig > 1 Then
ad = .Cells(2, 1).Resize(derlig - 1, ncol).Address
With .Cells(lig, 1).Resize(derlig - 1, ncol)
.FormulaArray = "=" & f & ad 'formule de liaison matricielle
.Value = .Value 'supprime la formule
End With
lig = lig + derlig - 1
End If
End If
fichier = Dir 'fichier suivant
Wend
.UsedRange.Replace 0, "", xlWhole 'supprime les zéros
End With
End Sub