Option Explicit
Private Sub ComboBox1_GotFocus()
ComboBox1.List = Array("<tout>", "T", "P", "O", "<zéros>", "<vides>")
End Sub
Private Sub Combobox1_Change()
Dim w As Worksheet, critere$, P As Range
Dim c As Range
Dim decalage As Integer
Set w = Feuil1 'CodeName de la feuille source
critere = ComboBox1
Application.ScreenUpdating = False
Range("A2:G" & Rows.Count).Delete xlUp 'RAZ
If w.FilterMode Then w.ShowAllData 'si un filtre est en place
Set P = w.Range("A1:G" & w.Range("A" & w.Rows.Count).End(xlUp).Row)
If critere <> "<tout>" And critere <> "<vides>" And critere <> "<zéros>" Then P.AutoFilter 7, critere
If critere = "<zéros>" Then P.AutoFilter 7, 0
If critere = "<vides>" Then P.AutoFilter 7, ""
P.Copy [A1]
w.AutoFilterMode = False 'retire le filtre
With Me.UsedRange: End With 'actualise la barre de défilement
'copie des écarts
With Sheets("ecart").Range("K:M")
Set c = .Find([critere], LookIn:=xlValues)
If Not c Is Nothing Then
decalage = c.Row + 4 'attention + 4 implique que tous tes tableaux commencent 4 lignes en dessous du titre "P O
End If
End With
Sheets("ecart").Range("E" & decalage & ":X" & decalage + 1).Copy
With Sheets("2016").Range("AP6")
.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
End With
End Sub