1. Ce site utilise des "témoins de connexion" (cookies) conformes aux textes de l'Union Européenne. Continuer à naviguer sur nos pages vaut acceptation de notre règlement en la matière. En savoir plus.

code vba combinaison 5 numéro sur 49

Discussion dans 'Forum Excel' démarrée par julien clerc, 5 Mars 2012.

  1. B Mohamed Khalid

    B Mohamed Khalid XLDnaute Nouveau

    Inscrit depuis le :
    5 Mai 2017
    Messages :
    15
    "J'aime" reçus :
    0
    Sexe :
    Masculin
    Re bonjour Pierrejean...
    En parcourant les discussions précédentes, j'ai trouvé un poste de vous qui me parait plus simple. il crée, moyenant l'ajout du sixième numéro la totalité des combinaisons 6/49, soit presque 14.000.000 de combinaisons...
    et comme on ne change pas une équipe qui gagne,...Il reste à y inclure les conditions concernant la somme des 6 chiffres ainsi que celle concernant le maximum de paires / impaires...je crois que ça doit être plus facile à réaliser, d'autant plus que le programme est de vous...
    Ci après le programme une fois que j'y ai inclu le sixième chiffre..
    Bien à vous cher ami


    Sub combinaisons()
    lin = 1
    col = 1
    For m = 1 To 49
    For n = m + 1 To 49
    For o = n + 1 To 49
    For p = o + 1 To 49
    For q = p + 1 To 49
    For r = q + 1 To 49
    Cells(lin, col) = m & " " & n & " " & " " & o & " " & p & " " & q & " " & r
    lin = lin + 1
    If lin > 65536 Then
    col = col + 1
    lin = 1
    End If
    Next r
    Next q
    Next p
    Next o
    Next n
    Next m
    End Sub
     
  2. pierrejean

    pierrejean XLDnaute Barbatruc

    Inscrit depuis le :
    19 Janvier 2006
    Messages :
    14494
    "J'aime" reçus :
    379
    Habite à:
    69400 LIMAS
    Utilise:
    Excel 2010 (PC)
    Re
    OK voila
    Je n'ai pas eu le temps de tester jusqu'au bout !!!
    Code (Text):

    Sub combinaisons1()
    lin = 1
    col = 1
    For m = 1 To 49
    For n = m + 1 To 49
    For o = n + 1 To 49
    For p = o + 1 To 49
    For q = p + 1 To 49
    For r = q + 1 To 49
    somme = m + n + o + p + q + r
    If somme > 99 And somme < 201 Then
    pairs = 6 - m Mod 2 - n Mod 2 - o Mod 2 - p Mod 2 - q Mod 2 - r Mod 2
    impairs = m Mod 2 + n Mod 2 + o Mod 2 + p Mod 2 + q Mod 2 + r Mod 2
    If pairs < 6 And impairs < 6 Then
        Cells(lin, col) = m & " " & n & " " & " " & o & " " & p & " " & q & " " & r
         lin = lin + 1
     End If
    If lin > Rows.Count Then
    col = col + 1
    lin = 1
    End If
    End If
    Next r
    Next q
    Next p
    Next o
    Next n
    Next m
    End Sub
     
     
  3. B Mohamed Khalid

    B Mohamed Khalid XLDnaute Nouveau

    Inscrit depuis le :
    5 Mai 2017
    Messages :
    15
    "J'aime" reçus :
    0
    Sexe :
    Masculin
    Merci cher ami...j'ai changé plusieurs fois le parametre concernant la somme, le nombre total des combinaisons est resté le même, je crois que la contrainte sur la somme ne marche pas....ou pas correctement...je pense qu'après le "Then" qui suit la condition en question, il manque des instructions...mais je ne suis pas sure...
     
  4. B Mohamed Khalid

    B Mohamed Khalid XLDnaute Nouveau

    Inscrit depuis le :
    5 Mai 2017
    Messages :
    15
    "J'aime" reçus :
    0
    Sexe :
    Masculin
    Merci cher ami...et Bravo, j'ai testé le programme, en apportant chaque fois des conditions de plus en plus strictes, et je suis arrivé à 7.000.000 de combinaisons, soit presque le meme nombre a été zappé grace à ces condition...Seulement, j'ai ajouté une autre condition au programme concernant le PAS entre les numéros avec comme minimum un pas >=20 et comme maximum un pas <=40, mais j'ai du rater qq chose...voici le programme tel que je l'ai modifé..: NB : les lignes ajoutées sont suivis par des commentaires

    Sub combinaisons1()
    lin = 1
    col = 1
    disp = 1 'declaration de la variable Disp
    For m = 1 To 49
    For n = m + 1 To 49
    For o = n + 1 To 49
    For p = o + 1 To 49
    For q = p + 1 To 49
    For r = q + 1 To 49
    somme = m + n + o + p + q + r
    If somme > 109 And somme < 191 Then
    pairs = 6 - m Mod 2 - n Mod 2 - o Mod 2 - p Mod 2 - q Mod 2 - r Mod 2
    impairs = m Mod 2 + n Mod 2 + o Mod 2 + p Mod 2 + q Mod 2 + r Mod 2
    If pairs < 6 And impairs < 6 Then
    disp = (r - q) + (q - p) + (p - o) + (o - n) + (n - m) 'définition de la variable disp
    If disp < 20 And disp > 40 Then 'Condition d'acceptation de la variable disp
    Cells(lin, col) = m & " " & n & " " & " " & o & " " & p & " " & q & " " & r
    lin = lin + 1
    End If
    End If
    If lin > Rows.Count Then
    col = col + 1
    lin = 1
    End If
    End If
    Next r
    Next q
    Next p
    Next o
    Next n
    Next m
    End Sub
     
  5. pierrejean

    pierrejean XLDnaute Barbatruc

    Inscrit depuis le :
    19 Janvier 2006
    Messages :
    14494
    "J'aime" reçus :
    379
    Habite à:
    69400 LIMAS
    Utilise:
    Excel 2010 (PC)
    Re

    Je ne comprends pas la notion de Pas telle que traduite par les lignes
    disp = (r - q) + (q - p) + (p - o) + (o - n) + (n - m) 'définition de la variable disp
    If disp < 20 And disp > 40 Then 'Condition d'acceptation de la variable disp

    Une proposition (qui réduit drastiquement les réponses)
    Mais est-ce ce que tu souhaites ???

    Sub combinaisons1()
    lin = 1
    col = 1
    disp = 1 'declaration de la variable Disp
    For m = 1 To 49 Step 20
    For n = m + 1 To 49 Step 20
    For o = n + 1 To 49 Step 20
    For p = o + 1 To 49 Step 20
    For q = p + 1 To 49 Step 20
    For r = q + 1 To 49 Step 20
    somme = m + n + o + p + q + r
    If somme > 109 And somme < 191 Then
    pairs = 6 - m Mod 2 - n Mod 2 - o Mod 2 - p Mod 2 - q Mod 2 - r Mod 2
    impairs = m Mod 2 + n Mod 2 + o Mod 2 + p Mod 2 + q Mod 2 + r Mod 2
    If pairs < 6 And impairs < 6 Then
    'disp = (r - q) + (q - p) + (p - o) + (o - n) + (n - m) 'définition de la variable disp
    'If disp < 20 And disp > 40 Then 'Condition d'acceptation de la variable disp
    Cells(lin, col) = m & " " & n & " " & " " & o & " " & p & " " & q & " " & r
    lin = lin + 1
    'End If
    End If
    If lin > Rows.Count Then
    col = col + 1
    lin = 1
    End If
    End If
    Next r
    Next q
    Next p
    Next o
    Next n
    Next m
    End Sub
     
  6. Scorpio

    Scorpio XLDnaute Occasionnel

    Inscrit depuis le :
    17 Septembre 2016
    Messages :
    139
    "J'aime" reçus :
    0
    Bonjour à vous tous,
    Dite, s'il vous plaît, l'EuroMillion c'est pas 5 numéro sur 50 ??
    A++++
     
  7. pierrejean

    pierrejean XLDnaute Barbatruc

    Inscrit depuis le :
    19 Janvier 2006
    Messages :
    14494
    "J'aime" reçus :
    379
    Habite à:
    69400 LIMAS
    Utilise:
    Excel 2010 (PC)
    Re
    Qui a mentionné l'EuroMillion ???
     
  8. Scorpio

    Scorpio XLDnaute Occasionnel

    Inscrit depuis le :
    17 Septembre 2016
    Messages :
    139
    "J'aime" reçus :
    0
    Bonjour pierrejean,
    C'est moi le petit scorpio.
    Je suis tombé sur ce message, et j'ai aperçu l'énoncé du message 5 sur 49 et bien sur, j'ai pensé de suite à Euromillion, 5 sur 50
    Ca serais aussi bien d'avoir la combinaison de 5 sur 50, qu'en pensez vous pierrejean ??
    A+++, et merci de votre aide
     
  9. B Mohamed Khalid

    B Mohamed Khalid XLDnaute Nouveau

    Inscrit depuis le :
    5 Mai 2017
    Messages :
    15
    "J'aime" reçus :
    0
    Sexe :
    Masculin
    Merci cher ami...et Bravo, j'ai testé le programme, en apportant chaque fois des conditions de plus en plus strictes, et je suis arrivé à 6000000
    Excusez moi cher ami, mais j'ai fais une erreur ..., il ne s'agit pas de
    If disp < 20 And disp > 40
    mais de If disp > 20 And disp < 40
    Le Pas c'est le la différence entre chaque numéro avec celui qui le précède...nous avons donc pour 6 numéros 5 Pas (B-A); (C-B); (D-C); (E-D) et (F-E)...La somme de ces pas constitue ce qu'on pourrait appeler "LaDispersion" des numéros dans la plage des 1 à 49...Vous remarquerez alors qu"une combinaison style : 1-3-5-37-44-48 a une dispersion de 47, en meme temps, il s'agit d'une combinaison avec des chiffres tres espacés...Bien entendu les paramétres à prendre en considération >20 et <40 doivent provenir de l'historique du jeu, sachant qu'en choisissant un parametre quelqconque, on sait ce qu'on gagne et aussi ce qu'on risque, un risque de 5% de combinaisons non conformes à nos parametres serait acceptable a mon avis...
    Par ailleurs, il existe une autre maniere de dealer avec les "Pas" c'est de ne pas accepter un Pas supérieur à 18 ou 20 par exemple, quelle que soit sa position...
     
    Dernière édition: 19 Mai 2017
  10. B Mohamed Khalid

    B Mohamed Khalid XLDnaute Nouveau

    Inscrit depuis le :
    5 Mai 2017
    Messages :
    15
    "J'aime" reçus :
    0
    Sexe :
    Masculin
    Autres idées concernant ce que j'appelerais des combinaisons "abbérantes", qui quoi que puissent sortir de temps en temps au loto, mais leur fréquences est tellement rare, que le terme abbération s'applique à elles..
    1. le cas du maximum de nombres par colone (les colonnes sont de (1à9), de (10à19),(20à29); (30à39) et de (40à49)...avec un maximum de 3 par colonne, nous réussirons à éliminer des dizaines de milliers, voire des centaines de milliers de combinaisons improbables...
    2. Le cas du maximum par ligne : il ya dans un jeu 6-49, 10 lignes : Ligne zéro (10,20,30,40); Ligne 1 (1,11,21,31,41); Ligne 2 (2,12,22,32,42), etc...Si nous acceptons maximum 2 ou 3 numeros par ligne, ce qui correspond à la quasi totalité des tirages..en fait, le loto, et ce ne sont là qu'une partie infime des contraintes sur lesquelles j'ai travaillé à l'aide du magnifique outil qu'est Excel....sans parler des contraintes du maximum de nombres à autoriser par écart, l'écart étant le nombre de fois ou un numéro a été absent, l'écart zéro est composé des 6 derniers numéros sortis lors du dernier tirage, l'écart 1 est composé des 6, 5 ou 4 numéros sortis lors de l'avant dernier tirage, etc...Comme vous le remarequez, il ya des contraintes absolues (qui ne changent pas au fil des tirages (maximum, dispersion, nombre de pairs, impairs) et des contraines relatives (qui changent à chaque sortie du jeu : maximum par écart, voire même maximum par fréquence globale ou fréquence récente...
    La question qui se pose est comment pourrions nous formaliser ces condition sur le maximum par colonne et le maximum par ligne ?
     
    Dernière édition: 20 Mai 2017
  11. pierrejean

    pierrejean XLDnaute Barbatruc

    Inscrit depuis le :
    19 Janvier 2006
    Messages :
    14494
    "J'aime" reçus :
    379
    Habite à:
    69400 LIMAS
    Utilise:
    Excel 2010 (PC)
    Re
    Désolé mais je ne suis pas partant pour une étude qui ne peut pas aboutir
    Good Luck
     
  12. B Mohamed Khalid

    B Mohamed Khalid XLDnaute Nouveau

    Inscrit depuis le :
    5 Mai 2017
    Messages :
    15
    "J'aime" reçus :
    0
    Sexe :
    Masculin
    Ce qui compte pour moi, ce n'est pas tant l'appat du gain que l'apprentissage de la méthode de programmation...la plupart des contraintes j'ai pu les réaliser directement sur excel..je pourrais vous dire à n'importe quel moment pour chaque numéro son écart, sa frequence globale, sa fréquence durant les 24 ou 10 derniers tirages, etc...et j'arrive même à marquer les éléments saillants avec des couleurs de fonds différents...pour ce qui est du reste j'ai un ami qui est un as de la programmation avec Turbo Pascal, et il a concocté une application presque parfaite..Pour vous dire je n'en ai pas trouvé une à sa hauteur même parmi les applis payantes sur le net...Ceci étant dit, vous êtes libre de vous embarquer sur le bateau qui vous chante et vous enchante....
    En tout cas, je vous remercie de votre amabilité et j'avoue que je vous trouve calé en programmation...je vous en félicite et à bientot Mr Pierrejean...Cordialement
     

Partager cette page