Sub Assembler()
Dim chemin$, fichier$, feuille$, ncol%, lig&, form$, h&
chemin = ThisWorkbook.Path & "\" 'dossier à adapter
'chemin = "\\W113101003af\GDB_C2S_RT\Supervision\supervision 2021\FichiersSources\TEST\test3\" 'dossier à adapter
fichier = Dir(chemin & "*.xlsm") '1er fichier du dossier
feuille = "BASE" 'nom des feuilles à copier, à adapter
ncol = 85 'nombre de colonnes, à adapter
lig = 3 '1ère ligne de restitution, à adapter
Application.ScreenUpdating = False
Application.DisplayAlerts = False
With Feuil2 'CodeName à adapter
.Rows(lig & ":" & Rows.Count).Delete 'RAZ
While fichier <> ""
If fichier <> ThisWorkbook.Name Then
form = "'" & chemin & "[" & fichier & "]" & feuille & "'!"
h = 0
On Error Resume Next
h = ExecuteExcel4Macro("MATCH(""zzz""," & form & "C1)") 'calcul sur colonne 1
On Error GoTo 0
If h > 6 Then
With .Cells(lig, 1).Resize(h - 6, ncol)
.FormulaArray = "=" & form & "R7C1:R" & h & "C" & ncol 'formule de liaison matricielle
.Value = .Value 'supprime la formule
End With
lig = lig + h - 6
End If
End If
fichier = Dir 'fichier suivant
Wend
With Range("A3:A" & lig - 1).Resize(, ncol)
.Replace 0, "", xlWhole 'efface les valeurs zéro
.Borders.Weight = xlThin 'bordures
End With
With .UsedRange: End With 'actualise les barres de défilement
End With
End Sub