Bonjour
je suis pas très bon avec exel
jai déja une formule qui va trouvé le 3 chiffre qui sorte le plus souvent ensemble sur 5 numéros
je voudrais la modifier pour quelle sorte les 3 chiffre qui sorte le plus souvent ensemble mais sur 20 numéros
et si ses possible un autre qui sort 4 sur 20 aussi
jai essayer mais je trouve pas comment faire
voici la macro
Function TroisB(Tir As Range)
Dim t5(5), c3b(9), i%, j%, k%, n%, cb$
For i = 1 To Tir.Cells.Count
t5(i) = Tir.Cells(i)
Next i
For i = 1 To 4
For j = i + 1 To 5
If t5(j) < t5(i) Then
t5(0) = t5(j): t5(j) = t5(i): t5(i) = t5(0)
End If
Next j
Next i
For i = 1 To 3
For j = i + 1 To 4
For k = j + 1 To 5
cb = t5(i) & "|" & t5(j) & "|" & t5(k)
c3b(n) = cb: n = n + 1
Next k
Next j
Next i
TroisB = c3b
End Function
Sub FrqTroisB()
Dim d As Object, Tcb(), k, n%, i%, j%
Set d = CreateObject("Scripting.Dictionary")
With Feuil1
n = .Cells(.Rows.Count, 1).End(xlUp).Row
For i = 2 To n
k = TroisB(.Range("e" & i).Resize(, 5))
For j = 0 To 9
If d.exists(k(j)) Then
d(k(j)) = CInt(d(k(j))) + 1
Else
d(k(j)) = 1
End If
Next j
Next i
End With
n = 0
ReDim Tcb(1 To d.Count, 1 To 4)
For Each k In d.keys
n = n + 1: Tcb(n, 1) = k: Tcb(n, 4) = CInt(d(k))
Next k
For i = 1 To UBound(Tcb, 1) - 1
For j = i + 1 To UBound(Tcb, 1)
If Tcb(j, 1) < Tcb(i, 1) Then
k = Tcb(j, 1): n = Tcb(j, 4)
Tcb(j, 1) = Tcb(i, 1): Tcb(j, 4) = Tcb(i, 4)
Tcb(i, 1) = k: Tcb(i, 4) = n
End If
Next j
Next i
For i = 1 To UBound(Tcb, 1) - 1
For j = i + 1 To UBound(Tcb, 1)
If Tcb(j, 4) > Tcb(i, 4) Then
k = Tcb(j, 1): n = Tcb(j, 4)
Tcb(j, 1) = Tcb(i, 1): Tcb(j, 4) = Tcb(i, 4)
Tcb(i, 1) = k: Tcb(i, 4) = n
End If
Next j
Next i
For i = 1 To UBound(Tcb, 1)
k = Split(Tcb(i, 1), "|")
For j = 1 To 3
Tcb(i, j) = CInt(k(j - 1))
Next j
Next i
With Feuil2
.Range("A1").CurrentRegion.Offset(1).ClearContents
.Range("A2").Resize(UBound(Tcb, 1), 4).Value = Tcb
.Activate
End With
End Sub
voici le fichier