Sub Consolide_Vcorrigee()
'//-> Déclarations
Dim sWs As Worksheet, nl&, nc&, dL&, Ld&, t
Set sWs = Sheets("SYNTHESE")
Application.ScreenUpdating = False
sWs.[A1].CurrentRegion.Offset(1, 0).Clear
'//-> consolidation des données
For Each s In Array("MENAGE", "CEDEX")
dL = Sheets(s).Cells.Find(What:="*", After:=Sheets(s).Cells(1, 1), SearchDirection:=xlPrevious).Row - 1
t = Sheets(s).Range("A2").Resize(dL, 46)
nl = UBound(t, 1): nc = UBound(t, 2)
sWs.[A65536].End(xlUp).Offset(Ld + 1, 0).Resize(nl, nc).Value = t
Erase t
Ld = sWs.Cells.Find(What:="*", After:=sWs.Cells(1, 1), SearchDirection:=xlPrevious).Row + 1
Next s
'//-> mise en forme du résultat final
With sWs
.Cells(1, 2).Resize(.Cells(65536, "B").End(xlUp).Row).AutoFilter Field:=1, Criteria1:="="
Set rf = .[_FilterDataBase]
rf(2).Resize(rf.Rows.Count - 1).SpecialCells(4).Delete Shift:=xlUp
.AutoFilterMode = False
End With
Set sWs = Nothing '//-> Libère la mémoire
Application.ScreenUpdating = False
End Sub