Private Function Trouvé(ByVal Niv As Long) As Boolean
Dim M As Long, L As Long, LAt As ListeAléat, P&, J&
M = Niv \ NbEQu + 1: If M > 4 Then Trouvé = True: Exit Function
Set LAt = TAléa(M): L = Niv Mod NbEQu + 1
P = 0: Do: P = P + 1: J = LAt.Aléat(P): If J = 0 Then Exit Function
If TLibre(L, J) Then
LAt.Supprimer J: TLibre(L, J) = False
Trouvé = Trouvé(Niv + 1)
If Trouvé Then TTir(M, L) = J: Exit Function
LAt.Remettre J, P: TLibre(L, J) = True: End If
Loop
End Function