Sub Extraction2()
Dim Tablo, Tabl(), Nb As Byte, i&, j&, c As Range
Application.ScreenUpdating = False
Set Tablo = Sheets("Base_données").[A2].CurrentRegion.Offset(1, 0)
Set Tablo = Tablo.Resize(Tablo.Rows.Count - 1)
Nb = Application.CountIf(Sheets("Base_données").Range(Cells(3, 4), Cells(Tablo.Rows.Count + 2, 4)), ComboBox1.Value)
Sheets("Extraction").Range("A2:O" & Tablo.Rows.Count).ClearContents
Set champ = Sheets("Base_données").Range(Cells(2, 4), Cells(Tablo.Rows.Count + 2, 4))
Set c = champ.Find(Me.ComboBox1, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
premier = c.Address
i = 1
Do
For j = 1 To Tablo.Columns.Count
ReDim Preserve Tabl(1 To Nb, 1 To Tablo.Columns.Count)
Tabl(i, j) = Sheets("Base_données").Cells(c.Row, j).Value
Next j
i = i + 1
Set c = champ.FindNext(c)
Loop While Not c Is Nothing And c.Address <> premier
End If
With Sheets("Extraction")
For i = 1 To Nb
For j = 1 To Tablo.Columns.Count
.Cells(i + 1, j) = Tabl(i, j)
Next j
Next i
End With
Application.ScreenUpdating = True
End Sub