Salut Filait,
Bonjour sabV, Tulipe, James,
une solution VBA, pour ne pas changer, qui fait tout à la fois :
- un double-clic sur la première cellule d'une combinaison ou d'une simple lettre :
° pour les lettres simples : le nombre de doublons, triplons, quadruplons,... vingtspentatuplons de cette lettre (inutile de créer ces types d'assemblage : la macro les calcule seule) avec indication du type en ligne 3 ;
° pour les combinaisons : le nombre d'apparitions.
- clic sur le bouton calcule le tout en une fois.
La remarque de Tulipe est pertinente : faut-il considérer qu'un triplon compte deux doublons, ainsi qu'un quadruplon compterait deux triplons et trois doublons, etc... ? Ça changerait tout!
Outre ce détail, comment se présentent tes 300 lignes?
Faut-il considérer qu'elles constituent une phrase unique (pas d'interruption de comptage) ou sont-elles des unités de test à part entière?
Dans ces deux cas, où faut-il afficher les résultats?
Un fichier réel nous aiderait beaucoup!
For x = 2 To IIf(iRow > 10, 2, 25)
For y = 1 To UBound(tData, 2)
sData = IIf(iRow > 10, tTest(1, IIf(iRow > 10, iFlag, 0) + 1), Cells(iRow, 2))
iFlag = IIf(tData(1, y) = sData, iFlag + 1, 0)
If iFlag = 0 And iRow > 10 Then iFlag = IIf(tData(1, y) = tTest(1, iFlag + 1), iFlag + 1, 0)
If iFlag = IIf(iRow > 10, Cells(iRow, 2).End(xlToRight).Column - 1, x) Then
Cells(iRow, IIf(iRow > 10, 9, 7 + x)) = Cells(iRow, IIf(iRow > 10, 9, 7 + x)) + 1
If iRow < 10 Then Cells(3, 7 + x) = x
iFlag = 0
End If
Next
Next
Bon, c'est vrai, j'ai un peu déc... côté condensé...
@ sabV : pas pensé à la fonction perso... Très joli!
A+