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 31 32 33 34 35 36 37 38 39 40
| Public Sub Rapartriement()
Dim sht As Worksheet
Dim LastLig As Long
Application.ScreenUpdating = False
'Effacer données existentes dans Band
With Sheets("Band")
.Range("A8:I" & .Cells(Rows.Count, "A").End(xlUp).Row + _
1).EntireRow.ClearContents
End With
'Rapatriement données avec boucle sur les feuilles (en filtrant les données non vides)
For Each sht In ThisWorkbook.Worksheets
If sht.Name <> "Band" Then
With sht
.AutoFilterMode = False 'Enlève le filtre automatique
LastLig = .Cells(Rows.Count, "F").End(xlUp).Row 'Dernière ligne remplie de la colonne F
If LastLig > 7 Then 'Si des données existent en colonne F
.Range("A7").AutoFilter Field:=6, Criteria1:="<>" 'On filtre sur les cellules non vides de la colonne F
.Range("A8:I" & LastLig).SpecialCells(xlCellTypeVisible).Copy 'On copie les données issues du filtre automatique
Sheets("Band").Cells(Rows.Count, "A").End(xlUp)(2).PasteSpecial _
Paste:=xlValues 'Collage special dans première cellule non vide de la colonne A de feuille Band
Application.CutCopyMode = False
.AutoFilterMode = False
End If
End With
End If
Next sht
'Tri données déjà rapatriés dans feuille Band
With Sheets("Band")
LastLig = .Cells(Rows.Count, "F").End(xlUp).Row
If LastLig > 7 Then
.Range("A7:I" & LastLig).Sort Key1:=.Range("F7"), Order1:=xlAscending, _
Key2:=.Range("E7"), Order2:=xlAscending, Header:=xlYes
.Range("A7").Select
End If
End With
End Sub |
Partager