1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| Sub Demo_Backup_Filtre1()
Dim RgA_Filtre As Range, x&, ws As Worksheet, T!
T = Timer
Application.ScreenUpdating = False
For Each ws In Worksheets
If ws.CodeName <> "Feuil1" Then
ws.Range("$B$12:$N$21").AutoFilter field:=3, Criteria1:="<>"
Set RgA_Filtre = ws.Range("_FilterDataBase").SpecialCells(xlCellTypeVisible)
x = 1
For Each Areas In RgA_Filtre
DerL& = Feuil1.Range("B" & Rows.Count).End(xlUp).Row + 1
If x = 1 And RgA_Filtre.Areas(x).Rows.Count > 1 Then
Feuil1.Range("B" & DerL).Resize(RgA_Filtre.Areas(x).Rows.Count, 13).Value = RgA_Filtre.Areas(1).Resize(RgA_Filtre.Areas(x).Rows.Count - 1).Offset(1).Value
Else
x = x + 1
Feuil1.Range("B" & DerL).Resize(RgA_Filtre.Areas(x).Rows.Count, 13).Value = RgA_Filtre.Areas(x).Value
End If
If x = RgA_Filtre.Areas.Count Then Exit For
Next
End If
Next
Set RgA_Filtre = Nothing
Application.Goto Feuil1.Cells(1), True
Application.ScreenUpdating = False
MsgBox Format$(Timer - T, "0,000s")
End Sub |