Sub Séparer()
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim TC() As Variant 'déclare la variable TC (Tableau des Choix)
Dim PL As Range 'déclare la variable PL (PLage)
Dim PLV As Range 'déclare la variable PLV (PLage Visible)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)
Dim I As Integer 'déclare la variable I (Incrément)
Set OS = Worksheets("Base") 'définit l'onglet source OS
Set PL = OS.Range("A1").CurrentRegion 'définit la plage PL
Set PLV = PL.Offset(1, 0).Resize(PL.Rows.Count - 1, PL.Columns.Count) 'définit la plage PLV
TC = Array("A sortir", "Déjà présents") 'définit le tableau des choix TC
For I = 0 To UBound(TC) 'boucle sur tous les choix du tableau TC
PL.AutoFilter Field:=8, Criteria1:=TC(I) 'filtre la colonne 8 de la plage PL avec le choix de la boucle comme critère
Set OD = Worksheets(TC(I)) 'définit l'onglet de destination OD
Set DEST = OD.Cells(Application.Rows.Count, "A").End(xlUp).Offset(1, 0) 'définit la cellule de destination DEST
PLV.SpecialCells(xlCellTypeVisible).Copy DEST 'copie les cellules visibles de la plage PLV et les colle dans DEST
Next I 'prochaon choix de la boucle
OS.Range("A1").CurrentRegion.Offset(1, 0).Clear 'efface les données de l'onglet source OS
MsgBox "Travail terminé." 'message
End Sub