Trios ensemble

bonjour le forum

Actuellement(dans le fichier joint) je recherche les 3 numéros les plus sortis ensemble avec des formules,répéter 10 fois cela est assez long,d'ou je recherche un code vba pour faire ces opérations en une seul fois.

merci

54trios.xlsm (38.74 Ko)

Bonjour

Un essai

bonjour banzai64,le forum

toujours fidele au poste,merci

je viens de regarder ton fichier,si je l"ai bien compris au résulat "Recherche" il donne le trio qui est le plus sorti dans la BdD la le 11-35-70 c"est ça.

Je me suis mal expliqué car je recherche à partir d"un numéro(65 par ex) les 2 autres numéros ou plus qui sortent le plus avec lui(le 65)

la dans l"exemple cela serait le 65 avec le 45 et 58 si ma méthode de calcul est bonne

je prend un numero(65) je regarde qui sort le + avec lui(col AB:AF)donc le 45(30 fois) puis je regarde qui sort le plus avec eux(col AH:AL) le 58(14 fois) ce qui fait 65-45-58

merci

a+

Bonjour

Tu choisis un numéro et tu voudrais la combinaison qui sort le plus souvent avec ce numéro ?

Ce numéro bien sur peut être en 1ère, 2ème ou dernière position ?

C'est pas gagné encore

wait & see : Pas sur de trouver

re

quand tu dis 1ere,2ieme ou 3ieme position c'est par rapport au lignes de la BdD,oui, ça peut etre le 1 ou le 70 comme le 35

a+

Bonjour

Quand 1er, 2ème ou 3ème c'est la position dans la combinaison

Exemple choix 30

on peut avoir

30,35,49

30,52,58

25,30,42

26,30,52

1,18,30

14,21,30

Donc il faut recenser toutes les combinaisons avec 30

Donc à voir

bonjour Banzai64,le orum

je viens de comparer les résultats de ton fichier avec le mien et les resultas sont pareils mais en plus rapide.

c'est parfait

merci

@+

bonjour banzai64,le forum

fort de la bonne marche du code pour les trios,j'ai voulu le changer pour les quintés,j'ai donc rajouté des instructions par rapport au trios mais quand j'execute la macro excel se ferme.

D'ou vient l'erreur

merci

Sub Combinaison()
Dim I As Integer, K As Integer, M As Integer, N As Integer, O As Integer
Dim NbMax As Integer
Dim Tablo(1 To 70, 1 To 70, 1 To 70, 1 To 70, 1 To 70) As Integer
Dim J As Long
Dim Resultat(1 To 1, 1 To 6)
Dim Tbl1
Dim Nombre As Integer

  Application.ScreenUpdating = False
  Tbl1 = Range("BdD")
  NbMax = UBound(Tbl1, 2)

  For J = 1 To UBound(Tbl1)
    For I = 1 To NbMax - 4
      For K = I + 1 To NbMax - 3
        For M = K + 1 To NbMax - 2
          For N = M + 1 To NbMax - 1
            For O = N + 1 To NbMax
        Tablo(Tbl1(J, I), Tbl1(J, K), Tbl1(J, M), Tbl1(J, N), Tbl1(J, O)) = Tablo(Tbl1(J, I), Tbl1(J, K), Tbl1(J, M), Tbl1(J, N), Tbl1(J, O)) + 1
            Next O
          Next N
        Next M
      Next K
    Next I
  Next J

  For Nombre = 1 To 70
  Resultat(1, 6) = 0
    For I = 1 To 70
      For K = 1 To 70
        For M = 1 To 70
          For N = 1 To 70
            For O = 1 To 70
          If I = Nombre Or K = Nombre Or M = Nombre Or N = Nombre Or O = Nombre Then
            If Tablo(I, K, M, N, O) > Resultat(1, 6) Then
              Resultat(1, 1) = I
              Resultat(1, 2) = K
              Resultat(1, 3) = M
              Resultat(1, 4) = N
              Resultat(1, 5) = O
              Resultat(1, 6) = Tablo(I, K, M, N, O)
              End If
            End If
            Next O
          Next N
        Next M
      Next K
    Next I
    Cells(1 + Nombre, "X").Resize(1, 6) = Resultat
  Next Nombre
End Sub
49classeur2test.xlsm (296.07 Ko)

Bonjour

Le principe de la macro est qu'elle construit en mémoire un tableau pouvant contenir toutes les combinaisons de 3 nombres parmi 70

La taille du tableau par lui-même est de 54 740 * 2 octets (taille de l'Integer) de mémoire

Pour une combinaison de 5 nombres parmi 70 la taille requise minimum est de 12 103 014 * 2 = 24 103 014 octets de mémoire (soit environ 23 Mo de mémoire)

Moi le mien il n'en veut pas : Dépassement de capacité

Il faut utiliser une autre méthode que je ne connais pas

bonjour banzai64,le forum

ok pour l'information banzai

merci

@+

Rechercher des sujets similaires à "trios ensemble"