Function nb_maxi_tableau(valeur As String, tableau_recherche) As Integer
Dim i As Integer, j As Integer, nb_i As Integer, maxi As Integer
Dim k As Integer, nb_k As Integer, tag As Boolean, vide As Boolean
nb_i = UBound(tableau_recherche.Value, 1)
nb_k = UBound(tableau_recherche.Value, 2)
j = 0
For i = 1 To nb_i
tag = False ' valeur vrai si "valeur" est trouvé dans la ligne
vide = True
For k = 1 To nb_k
If tableau_recherche(i, k).Value = valeur Then tag = True
If tableau_recherche(i, k).Value <> vbNullString Then vide = False
Next k
If tag Then
j = j + 1
If j > maxi Then maxi = j
ElseIf Not (vide) Then
j = 0
End If
Next i
nb_maxi_tableau = maxi
End Function
Function nb_maxi_sans_tableau(valeur As String, tableau_recherche) As Integer
Dim i As Integer, j As Integer, nb_i As Integer, maxi As Integer
Dim k As Integer, nb_k As Integer, tag As Boolean, vide As Boolean
nb_i = UBound(tableau_recherche.Value, 1)
nb_k = UBound(tableau_recherche.Value, 2)
j = 0
For i = 1 To nb_i
tag = False
vide = True
For k = 1 To nb_k
If tableau_recherche(i, k).Value = valeur Then tag = True
If tableau_recherche(i, k).Value <> vbNullString Then vide = False
Next k
If Not (tag) Then
j = j + 1
If j > maxi Then maxi = j
ElseIf Not (vide) Then
j = 0
End If
Next i
nb_maxi_sans_tableau = maxi
End Function