Sub Consolider()
Dim chemin, liste, nf%, n%, fichier, wb As Workbook, P As Range, ncol%, Q As Range, tabloP, tabloQ, i&, j%
chemin = ThisWorkbook.Path & "\" 'à adapter
liste = Array("Donnees1.xlsx", "Donnees2.xlsx") 'liste à adapter
Application.ScreenUpdating = False
On Error Resume Next 'si un fichier n'est pas trouvé
With ThisWorkbook
nf = .Worksheets.Count
'---RAZ---
For n = 1 To nf
.Worksheets(n).UsedRange.Clear
Next n
'---ouvertures et vérifications---
For Each fichier In liste
Set wb = Nothing
Set wb = Workbooks.Open(chemin & fichier)
If wb Is Nothing Then MsgBox "'" & chemin & fichier & " ' introuvable...": GoTo 1
If wb.Worksheets.Count <> nf Then MsgBox "Les fichiers n'ont pas le même nombre de feuilles !", 48: GoTo 1
Next fichier
'---copies et sommes---
For Each fichier In liste
For n = 1 To nf
Set P = Workbooks(fichier).Worksheets(n).UsedRange
If P.Count = 1 Then Set P = P.Resize(2) 'au moins 2 éléments
ncol = P.Columns.Count
Set Q = .Worksheets(n).Range(P.Address)
tabloP = P: tabloQ = Q 'matrices, plus rapides
For i = 1 To UBound(tabloP)
For j = 1 To ncol
If IsNumeric(CStr(tabloP(i, j))) And IsNumeric(tabloQ(i, j)) Then _
tabloQ(i, j) = tabloQ(i, j) + tabloP(i, j) Else tabloQ(i, j) = tabloP(i, j)
Next j, i
P.Copy Q 'pour copier les formats
Q = tabloQ 'restitution
Next n, fichier
End With
1 '---fermeture des fichiers---
For Each fichier In liste
Workbooks(fichier).Close False
Next fichier
End Sub