Tu n'as pas appliqué la modification dans ton exemple !!!!
Si tu l'appliques correctement elle fonctionne :
Private Sub UserForm_Activate()
Dim ColVisu(), LargeurCol(), Rng As Range
Dim Valeur_Cherchee, Debut As Long, Fin As Long, Debut2 As Long, Fin2 As Long, Maplage As Range
Dim d As Range
Valeur_Cherchee = 30
Valeur_Cherchee2 = "PP"
With [T_Staff].ListObject
Set d = .ListColumns("Id_Project").Range.Find(what:=Valeur_Cherchee, LookIn:=xlValues, LookAt:=xlWhole)
Fin = WorksheetFunction.CountIf(.DataBodyRange, Valeur_Cherchee)
If Not d Is Nothing Then
Set Maplage = .Range.Rows(d.Row).Resize(Fin)
Debut = d.Row
Set d = Maplage.Find(what:=Valeur_Cherchee2, LookIn:=xlValues, LookAt:=xlWhole)
Fin2 = WorksheetFunction.CountIf(Maplage.Columns(5), Valeur_Cherchee2)
If Not d Is Nothing Then
Set Rng = Maplage.Rows(d.Row - Debut + 1).Resize(Fin2)
ColVisu = Array(2, 3, 4, 5, 6)
LargeurCol = Array(60, 60, 60, 30, 30)
List_PP.ColumnCount = UBound(ColVisu) + 1
List_PP.ColumnWidths = Join(LargeurCol, ";")
List_PP.List = Application.Index(Rng, Evaluate("Row(1:" & Rng.Rows.Count & ")"), ColVisu)
Else
' traiter l'erreur absence Valeur_Cherchee2
End If
Else
' traiter l'erreur absence Valeur_Cherchee
End If
End With
End Sub