Function REPET(P1 As Range, P2 As Range, nb As Byte)
Dim i As Byte, n As Integer, j As Integer, k As Integer
For i = 1 To P1.Count
n = 0
For j = P2.Rows.Count To 1 Step -1
For k = P2.Columns.Count To 1 Step -1
If P2(j, k) <> "" Then
n = n + 1
If n <= nb And P1(i) = P2(j, k) Then REPET = REPET + 1
End If
Next
Next
Next
End Function
=REPET(C4:F4;J$4:S$13;18)
Re,
A essayer avec un tableau supplémentaire
JHA
Bonjour mp5078, JHA,
Avec cette fonction VBA :
Formule en H4 à tirer vers le bas :Code:Function REPET(P1 As Range, P2 As Range, nb As Byte) Dim i As Byte, n As Integer, j As Integer, k As Integer For i = 1 To P1.Count n = 0 For j = P2.Rows.Count To 1 Step -1 For k = P2.Columns.Count To 1 Step -1 If P2(j, k) <> "" Then n = n + 1 If n <= nb And P1(i) = P2(j, k) Then REPET = REPET + 1 End If Next Next Next End Function
Fichier joint.Code:=REPET(C4:F4;J$4:S$13;18)
Nota : dans vos explications vous parlez des colonnes A à J, j'avoue ne pas comprendre
Edit : ah oui ce sont les lettres à gauche...
A+
=PETITE.VALEUR(SI(10*(LIGNE(Feuil2!$J$4:$S$13)-LIGNE(Feuil2!$J$4))+(COLONNE(Feuil2!$J$4:$S$13)-COLONNE(Feuil2!$J$4))+1<=NB(Feuil2!$J$4:$S$13)-18;"";SI(10*(LIGNE(Feuil2!$J$4:$S$13)-LIGNE(Feuil2!$J$4))+(COLONNE(Feuil2!$J$4:$S$13)-COLONNE(Feuil2!$J$4))+1>NB(Feuil2!$J$4:$S$13);"";Feuil2!$J$4:$S$13));LIGNE(INDIRECT("1:" & MIN(18;NB(Feuil2!$J$4:$S$13)))))
=SOMME(--ESTNUM(EQUIV(C4:F4;Zone18;0)))
=SOMME(--ESTNUM(EQUIV(Zone18;C4:F4;0)))