Sub Macrocosmétique()
Dim DerLig As Long, Plage As String, MonCritere As String
Dim WS1 As Worksheet, WS2 As Worksheet
Set WS1 = Worksheets("Suivi global BHU")
Set WS2 = Worksheets("Feuil1")
MonCritere = "Cosmétique"
'met la feuille source en mode filtre si elle ne l'est pas
If Not WS1.AutoFilterMode Then WS1.Range("A1:I1").AutoFilter
'tri selon les critères
WS1.Range("A10").AutoFilter Field:=11, Criteria1:=MonCritere
WS1.Range("A10").AutoFilter Field:=16, Criteria1:="=Actif", Operator:=xlOr, Criteria2:="=Inactif"
'détermination de la dernière ligne du tableau
DerLig = WS1.Range("A" & Rows.Count).End(xlUp).Row
'copie la feuille origine sur la feuille source
Plage = "C10:C" & DerLig & ",F10:F" & DerLig & ",I10:K" & DerLig & ",N10:N" & DerLig & ",P10:Q" & DerLig
WS1.Range(Plage).SpecialCells(xlCellTypeVisible).Copy WS2.Range("A1") ' sur une seule ligne
'met la feuille cible en mode filtre si elle ne l'est pas
If Not WS2.AutoFilterMode Then WS2.Range("A1:I1").AutoFilter
'adapte les colonnes au contenu
WS2.Columns("A:H").AutoFit
'supprime la trace de sélection
Application.CutCopyMode = False
'se repositionne sur feuille source en A1
WS1.Range("A1").Select
End Sub