Function tata&(r As Range, n&)
Application.Volatile
Dim i&, m&, a#, b#, x&
For i = 2 To r.Count
If IsNumeric(r(i)) And r(i) <> "" Then a = r(i) Else a = 1.79769313486231E+308
If IsNumeric(r(i - 1)) And r(i - 1) <> "" Then b = r(i - 1) Else b = 1.79769313486231E+308
If Abs(a - b) = 1 Then m = m + 1 - (r.Count = i) Else x = x - (m = n - 1): m = 0
Next
tata = x - (m = n)
End Function
=tata($B4:$J4;COLONNE(B:B))
Vous vous sous-estimez sans doute, mais il est vrai que la solution proposée n'est pas claire ! En fait, je me suis trompé de fonction, en copiant une version de travail. Voici la bonne version (qui donne évidemment les mêmes résultats, sans l'inutile complication m = m + 1 - (r.Count = i) de la précédente-:Bonjour à tous
Simplement pour dire a ROGER que sa solution est effectivement extremement simple et qu'il ne me faudra qu'environ une quinzaine de jours pour la comprendre
en un mot comme en cent : BRAVO
Function titi&(r As Range, n&)
Application.Volatile
Dim i&, m&, a#, b#, x&
For i = 2 To r.Count
If IsNumeric(r(i)) And r(i) <> "" Then a = r(i) Else a = 1.79769313486231E+308
If IsNumeric(r(i - 1)) And r(i - 1) <> "" Then b = r(i - 1) Else b = 1.79769313486231E+308
If Abs(a - b) = 1 Then m = m + 1 Else x = x - (m = n - 1): m = 0
Next
titi = x - (m = n - 1)
End Function