Private Sub Workbook_Activate()
Dim chemin$, fichier$, feuille$, lig&, form$, h&
chemin = ThisWorkbook.Path & "\" 'dossier commun
fichier = Dir(chemin & "SG*.xls*") '1er fichier du dossier
feuille = "Factures" 'nom des feuilles
lig = 5 '1ère ligne de restitution
Application.ScreenUpdating = False
With Sheets(feuille)
If .ListObjects.Count Then .ListObjects(1).Unlist 'convertit le tableau structuré en plage
Range(lig & ":" & .Rows.Count).Delete 'RAZ
While fichier <> ""
form = "'" & chemin & "[" & fichier & "]" & feuille & "'!"
h = ExecuteExcel4Macro("MATCH(""zzz""," & form & "C12)")
If h > 4 Then
With .Cells(lig, 1).Resize(h - 4, 13) 'plage de A à M
.FormulaArray = "=""""&" & form & "A5:M" & h 'formule matricielle
.Value = .Value 'supprime la formule
End With
lig = lig + h - 4
End If
fichier = Dir 'fichier suivant
Wend
With .Range("H5:H" & .Rows.Count)
.Replace ",", ".", xlPart 'remplace la virgule par le point
.Replace " ", "", xlPart 'supprime les espaces
End With
.ListObjects.Add xlSrcRange, Range("A4:M" & lig - 1), , xlYes 'recrée le tableau structuré
End With
End Sub