Function CommunSuite(xplage As Range, xligne1&, xligne2&, xquoi&)
' cette fonction possèdent les arguments suivants :
' xplage -> c'est la plage d'entrée
' xligne1 -> c'est le numéro de la première des deux lignes à comparer
' la numérotation est relative à la plage d'entrée
' par exemple 3 correspond à la 3ème ligne de xplage
' (et non pas de la feuille de calcul)
' xligne2 -> c'est le numéro de la deuxième des deux lignes à comparer
' la numérotation est relative à la plage d'entrée
' xquoi -> indique ce que la fonction doit retourner
' si xquoi = 0, alors la fonction retourne le nombre total d'éléments de suite communs
' si xquoi > 0, alors la fonction retourne la chaine des nombres communs
Dim t1, t2, j&, res&, elem$
t1 = xplage.Rows(xligne1): t2 = xplage.Rows(xligne2)
If t1(1, 2) = Empty Then t1(1, 1) = Empty
For j = 2 To UBound(t1, 2) - 1
If t1(1, j - 1) = Empty And t1(1, j + 1) = Empty Then t1(1, j) = Empty
Next j
If t1(1, UBound(t1, 2) - 1) = Empty Then t1(1, UBound(t1, 2)) = Empty
If t2(1, 2) = Empty Then t2(1, 1) = Empty
For j = 2 To UBound(t2, 2) - 1
If t2(1, j - 1) = Empty And t2(1, j + 1) = Empty Then t2(1, j) = Empty
Next j
If t2(1, UBound(t2, 2) - 1) = Empty Then t2(1, UBound(t2, 2)) = Empty
For j = 1 To UBound(t1, 2)
If (t1(1, j) = t2(1, j)) And t1(1, j) <> Empty Then
res = res + 1
elem = elem & ", " & t1(1, j)
End If
Next j
If xquoi > 0 Then
CommunSuite = IIf(Left(elem, 2) = ", ", Mid(elem, 3), elem)
Else
CommunSuite = res
End If
End Function