Bonjour,
Une piste pour commencer, une fonction perso qui retourne un tableau donc, tu sélectionnes un nombre de cellules sur une ligne, tu entre la fonction avec ses arguments et tu valides en matricielle :
Function CALCULSERIE(Plage As Range, Valeur As Variant) As Variant()
Dim Tblserie() As Variant
Dim I As Integer
Dim J As Integer
Dim Debut As String
Dim Fin As String
Dim NB As Integer
Dim Ini As Boolean
For I = 1 To Plage.Count
If Plage(1, I).Value = Valeur Then
NB = NB + 1
If Plage(1, I).Value = Plage(1, I + 1).Value Then
If Debut = "" Then Debut = Plage(1, I).Address(0, 0)
Fin = Plage(1, I + 1).Address(0, 0)
NB = NB - 1
Else
If Debut <> "" And Fin <> "" Then
If Ini = True Then
J = J + 1
ReDim Preserve Tblserie(1 To J)
Tblserie(J) = NB - 1
End If
Debut = ""
Fin = ""
NB = 0
Ini = True
End If
End If
End If
Next I
If J = 0 Then
ReDim Preserve Tblserie(1 To 1)
Tblserie(1) = "FAUX"
End If
CALCULSERIE = Tblserie()
End Function
La fonction appelée dans les cellules avec la recherche des séries de 2 :
=CALCULSERIE($B$1:$AU$1;2)
Si une valeur n'est pas trouvée, FAUX est retourné et si la plage est plus grande que les valeurs retournées par la fonction, #N/A sera inscrit dans les cellules sélectionnées en trop. A adapter !
je regarde un peu plus tard pour le reste