XL 2016 Calcul écart de combinaison de 4 numéros Keno

Mathmath06

XLDnaute Nouveau
Bonjour à toutes et tous,

Je suis MathMath, nouveau sur le forum, bricoleur sur excel mais nul en VBA.

Je cherche à lister les écarts (par rapport au dernier tirage rentré) sur 2500 tirages du keno (N° 1 à 70) des combinaisons de 4 numéros (sans doublon).
J'ai généré un premier fichier avec les 916 895 combinaisons possibles (lourd).
J'ai ensuite récupéré une macro VBA qui prend en charge le calcul des écarts. J'ai inséré plus de 2200 tirages du keno. Ensuite, copie des cellules (qui calculent les écart avec la première ligne) vers le bas. C'est très très très long. Le processeur est mobilisé à 80% et le fichier excel qui en est à 34 000 combinaisons testées pèse (déjà!!!) près de 50 Mo (giga lourd!). Il reste plus de 880 000 combinaisons à tester. Si j'en viens à bout, le mammouth risque d'être inexploitable et de faire planter l'ordi (pc portable-SSD-Pentium).
Je vous demande s'il y aurait une ou des solutions plus légères et ergonomiques comme du vba (ou autres) pour parvenir à mes fins.
Merci infiniment par avance de l'aide que vous pourrez m'apporter !


Math
NB: je ne m'aventure pas à mettre le fichier excel de 50 MO en PJ pour l'instant, ça ne me semble pas judicieux....
 

LEPATOCHE

XLDnaute Occasionnel

Bonsoir Mathmath06

j'ai bien lu ta demande sur le keno , moi même passionner par
ce jeu de hazard aussi bien pour le loto je sais qu'il n'existe pas de martingale
au keno mais tu a raison d'avoir une passion sur ce tableur c’a fait travailler les neurones
et en plus de cela tu es tomber sur le bon forum car les gens sont d'une incroyable
intelligence et ils nous vienne souvent en aide ; donc mon cher

Mathmath06 ce que tu demande n'ai pas impossible mais vu l'imensite du calcul​

et bien ton ordinateur ne serais pas assez puissant , oui tu vas me dire qu'il existe un
peu plus de 1 million de lignes sur une colonne mais bon tout repose sur la puissance de
ton ordi , bon courage et persévère tu ne le regrettera pas et bonne chance au keno !
 

Mathmath06

XLDnaute Nouveau
Bonsoir Lepatoche, merci pour ton message et tes encouragements!
Les neurones sont effectivement mis à rude épreuve et j'essaie , sur le keno, de croiser statistiques, écarts et fréquence de sortie pour vérifier certaines probabilités trouvées sur le net. Je garde l'espoir qu'en VBA, mon pc puisse travailler plus vite. J'ai un fichier excel VBA (trouvé sur un forum) qui travaille vite et bien sur les combis à 3numéros (+54000 combinaisons) et calcul les écarts. Je n'ai malheureusement pas (pour l'instant...) les compétences pour le modifier et le faire travailler (même si c'est en 15mn au lieu de 3 actuellement) sur les combinaisons de 4 Numéros 😰.
bonne soirée! @ +
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous :),

Pour illustrer le fil, voici un exemple de ce qu'on pourrait faire pour compter les groupes de quatre nombres des tirages passés.

3 onglets :
  1. onglet "Menu" : pour lancer la macro
  2. onglet "Stat" : liste des 916 895 combinaisons possibles (4 parmi 70) et en face le nombre de fois où cette combinaison est apparue dans les tirages passés.
  3. onglet Tirages" : Liste des tirages passés (source FdJ) => 2 428 tirages
Pour lancer la macro, cliquer sur "Hop !" de l'onglet "Menu". L'avancement du traitement des tirages se voit dans la barre d'état.

Avec ma bécane, la durée d’exécution est d'environ 66 s. Config : PC, AMD Ryzen 7 3700X, 16 Go mémoire.
 

Pièces jointes

  • Mathmath06- combi keno- v2a.xlsm
    269 KB · Affichages: 30
Dernière édition:

Mathmath06

XLDnaute Nouveau
Bonjour à tous :),

Pour illustrer le fil, voici un exemple de ce qu'on pourrait faire pour compter les groupes de quatre nombres des tirages passés.

3 onglets :
  1. onglet "Menu" : pour lancer la macro
  2. onglet "Stat" : liste des 916 895 combinaisons possibles (4 parmi 70) et en face le nombre de fois où cette combinaison est apparue dans les tirages passés.
  3. onglet Tirages" : Liste des tirages passés (source FdJ) => 2 428 tirages
Pour lancer la macro, cliquer sur "Hop !" de l'onglet "Menu".

Avec ma bécane, la durée d’exécution est d'environ 66 s. Config : PC, AMD Ryzen 7 3700X, 16 Go mémoire.
Bonjour Mapomme,
Merci beaucoup d'avoir pris le temps de te pencher sur mon casse tête ! Je regarde ce soir et reviens vers vous.
Encore merci...!
 

Mathmath06

XLDnaute Nouveau
Bonjour à tous :),

Pour illustrer le fil, voici un exemple de ce qu'on pourrait faire pour compter les groupes de quatre nombres des tirages passés.

3 onglets :
  1. onglet "Menu" : pour lancer la macro
  2. onglet "Stat" : liste des 916 895 combinaisons possibles (4 parmi 70) et en face le nombre de fois où cette combinaison est apparue dans les tirages passés.
  3. onglet Tirages" : Liste des tirages passés (source FdJ) => 2 428 tirages
Pour lancer la macro, cliquer sur "Hop !" de l'onglet "Menu". L'avancement du traitement des tirages se voit dans la barre d'état.

Avec ma bécane, la durée d’exécution est d'environ 66 s. Config : PC, AMD Ryzen 7 3700X, 16 Go mémoire.
Bonsoir Mapomme et bonsoir le forum,

Tout d'abord un grand merci, c'est léger, propre et rapide (130 s)!!!

Te serait-il possible d'intégrer le calcul des écarts de sortie actuels en colonne C ("Ecarts") de manière à ce qu'il s'affiche (par exemple) "8 " en C4 en face de la combinaison 1-2-3-6 qui est sortie il y a 8 tirages, le 10 février 2024?
Je pense que si j'essaie de le faire en formule recopiée vers le bas, je vais encore exploser le compteur!

Encore merci de ton aide si précieuse!
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,

Te serait-il possible d'intégrer le calcul des écarts de sortie actuels en colonne C ("Ecarts") de manière à ce qu'il s'affiche (par exemple) "8 " en C4 en face de la combinaison 1-2-3-6 qui est sortie il y a 8 tirages, le 10 février 2024?

Oui, c'est possible. Voici une version v2b qui le fait (enfin j'espère 🙄).

Le temps d’exécution est légèrement plus long (+ 3 s) car j'ai aussi ajouté en fin de procédure quelques formatages du résultat.
 

Pièces jointes

  • Mathmath06- combi keno- v2b.xlsm
    270.5 KB · Affichages: 24

Mathmath06

XLDnaute Nouveau
Bonsoir Mapomme, bonsoir à tous,

Whaooooooo! 270ko, traitement des données en 2 mn, calcul des écarts impeccable (je crois que tu as fait ça en 2 lignes de vba !!!!)...
Merci pour ce superbe fichier qui semble être au top après quelques tests!!!

Une petite question subsidiaire pour l'actualisation des tirages: est il mieux de rajouter ligne par ligne en insérant chaque tirage en copié/collé dans la feuille tirage ou vaut il mieux coller le tableau intégral de la fdj après l'avoir expurgé des données inutiles?

MERCI +++++ !!!
bonne soirée
 

Mathmath06

XLDnaute Nouveau
Bonjour le forum, bonjour Mapomme,

Je suis un peu embêté avec le format des combinaison (4 numéros en une colonne) qui ne me permet pas, à des fins statistiques, de comparer les tirages avec les combinaisons sélectionnées (en utilisant l'outil MFC) car les nombres ne sont pas reconnus. J'ai essayé de passer par Données>convertir mais sans succès : il ne se répartissent pas sur les 4 cellules de droite.

Pour être plus clair, je veux extraire un certain nombre de combinaisons selon leur écart et les comparer avec le tirage du jour (grâce à la MFC des valeurs en double) dans une autre feuille. La disposition actuelle ne me le permet pas ou (plus vraisemblablement) je ne sais pas le faire.

Est-il possible (ou plutôt est-ce qu'il te serait possible) soit :
- d'intégrer une colonne dans le fichier présentant les combinaisons par colonne en plus de la colonne A?
- (ou) de transformer la colonne A en 4 colonnes de nombres distincts (ce qui permettrait de filtrer)?

Merci beaucoup...
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,
Et voici la version v3.
La durée d’exécution est plus longue (80 s) principalement la partie affichage et formatage mais c'est plus joli.

nota : si on omet les formatages facultatifs, on gagne 5 s mais c'est moins joli.
 

Pièces jointes

  • Mathmath06- combi keno- v3.xlsm
    273.2 KB · Affichages: 54
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,
Une petite question subsidiaire pour l'actualisation des tirages: est il mieux de rajouter ligne par ligne en insérant chaque tirage en copié/collé dans la feuille tirage ou vaut il mieux coller le tableau intégral de la fdj après l'avoir expurgé des données inutiles?
Comme la procédure a été écrite cela n'a pas d'importance. Les tirages ajoutés doivent être de la forme : la date suivie des 20 nombres.
S'il n'y avait pas le calcul des écarts, on pourrait ne traiter que les tirages supplémentaires. Mais les nouveaux tirages entrainent une modification des écarts et donc rendent obligatoire le retraitement de tous les tirages (anciens + ajoutés).
 
Dernière édition:

Mathmath06

XLDnaute Nouveau
Bonsoir le forum, bonsoir Mapomme,

Ca fonctionne au top 🤩, c'est un super boulot, propre efficace et rapide. J'ai joué avec un moment et c'est exactement ce que je souhaitais, je peux exploiter les données avec la répartition en colonne et le fichier reste léger malgré la masse de données! En plus, c'est vrai que c'est + joli !🤗

Merci infiniment, bravo! Et merci de prendre de ton temps pour aider les autres !

Très bonne soirée et bon weekend !!
 

labombola46

XLDnaute Nouveau
Bonsoir à tous, j’ai vu cette belle macro (version 3) Je pense qu’il est possible de l’adapter au loto italien pour 3 numéros au lieu de 4. J’ai essayé de changer la macro mais j’ai dû abandonner !! Si vous pouvez m’aider..........
Je n’arrive pas à attacher le ficher en me disant qu’il est trop gros. Et pourtant ça n’en avait pas l’air, après tout j’ai copié la version 3 Donc, si vous voulez m’aider, gardez à l’esprit que les numéros du loto italien sont 90, chaque tirage se compose de 5 numéros, que les triplés possibles sont 117480. Pardonnez-moi pour mon manque de connaissance de VBA
Voici comment j’ai changé la macro « Principal » qui reste bloquée à l’endroit où j’ai mis le commentaire

Sub Principale()
' mapomme - XLD
Dim t, tCombins, tvals, k&, tLesTirages, i&, tcombinPN, j&, s$, n&, ts, debut

debut = Timer
With Sheets("Stat")
.Range("a1").CurrentRegion.Clear
' liste des combinaisons de 3 parmi 1,2,3,4,5,...,87,688,89,90
Application.StatusBar = "Liste de toutes les combinaisons 3 parmi 90"
tCombins = TableauCombiPparmiN(3, 90) 'Sub o function non definita
' transformer les combinaisons en nombre
For i = 1 To UBound(tCombins): tCombins(i, 1) = CLng(Format(tCombins(i, 1), "00") & Format(tCombins(i, 2), "00") & _
Format(tCombins(i, 3), "00")): Next
ReDim Preserve tCombins(1 To UBound(tCombins), 1 To 1)
' écriture sur la feuille
.Range("a1") = "Combinaisons": .Range("b1") = "nn1": .Range("c1") = "nn2"
.Range("d1") = "nn3": .Range("e1") = "Occurence"
.Range("f1") = "Ecart/dernier tirage"
.Range("a2").Resize(UBound(tCombins)) = tCombins
'tableau des valeurs et écarts
ReDim tvals(1 To UBound(tCombins), 1 To 1)
ReDim tecarts(1 To UBound(tCombins), 1 To 1)
End With

' lecture des tirages et des dates
Application.StatusBar = "trie et lecture des tirages"
With Sheets("Tirages")
.Range("a1").CurrentRegion.Sort key1:=.Range("a1"), order1:=xlDescending, MatchCase:=False, Header:=xlYes
k = .Cells(Rows.Count, "a").End(xlUp).Row
tLesTirages = .Range("b2:f" & k)
End With

tcombinPN = TableauCombiPparmiN(3, 5) 'les combinaisons de 4 parmi 1,2,3,4,5,...,17,18,19,20

Application.ScreenUpdating = True
For i = 1 To UBound(tLesTirages)
If (i Mod 100) = 0 Then Application.StatusBar = "Tirage n° " & Format(i, "# ##0") & " / " & Format(UBound(tLesTirages), "# ##0")
For k = 1 To UBound(tcombinPN)
s = ""
For j = 1 To UBound(tcombinPN, 2): s = s & Format(tLesTirages(i, tcombinPN(k, j)), "00"): Next j
n = DichoTablo(tCombins, CLng(s))
tvals(n, 1) = tvals(n, 1) + 1 'PER ADESSO SI FERMA QUI ERRORE DI RUN TIME 9 'INDICE NON INCLUSO NELL'INTERVALLLLO
If tecarts(n, 1) = "" Then tecarts(n, 1) = i - 1
Next k
Next i

' tableau pour afficher les résultats
Application.StatusBar = "Construction tableau des résulats pour affichage"
ReDim Preserve tCombins(1 To UBound(tCombins), 1 To 6)
For i = 1 To UBound(tCombins)
s = tCombins(i, 1): If Len(s) = 6 Then s = "0" & s
For j = 1 To 4
tCombins(i, j + 1) = Mid(s, 1 + 2 * (j - 1), 2): Next
tCombins(i, 5) = tvals(i, 1)
tCombins(i, 6) = tecarts(i, 1)
Next i

' affichage et formatage
Application.StatusBar = "affichage et formatage"
Application.ScreenUpdating = False
With Sheets("Stat")
.Columns(2).Resize(, 3).NumberFormat = "00"
.Range("a2").Resize(UBound(tCombins), UBound(tCombins, 2)) = tCombins
.Range("a1").CurrentRegion.AutoFilter
.Range("a1").CurrentRegion.Borders.LineStyle = xlDash
.Range("a1").Resize(, UBound(tCombins, 2)).EntireColumn.AutoFit
.Range("a1").CurrentRegion.Columns(1).Interior.Color = RGB(220, 220, 220)
.Range("a1").CurrentRegion.Columns(2).Resize(, 3).Interior.Color = RGB(240, 240, 240)
.Range("a1").Resize(, 6).Interior.Color = RGB(220, 220, 255)
Application.Goto .Range("a1"), True
End With
Application.StatusBar = False
Application.ScreenUpdating = True
MsgBox Format(Timer - debut, "0.0\ sec.")
End Sub

😌
 

OlivGM

XLDnaute Occasionnel
Bonjour Le Forum,
Je me pose la question de savoir à quoi pourrait servir de connaitre l'écart de sortie d'une combinaison de 4 numéros pour gagner au Kéno ?
Est-ce pour calculer la régularité de sortie d'une combinaison ? (moyenne/écart type)
Si quelqu'un peut m'éclairer?
Pour ma part, je n'utilise que Python TensorFlow mais ici aussi la difficulté est de bien cibler les 8 numéros sur les 20!!!!
A bientôt
O.

ps: j'ai vu qu'il existe une extension passerelle Excel-Python
 

Statistiques des forums

Discussions
314 716
Messages
2 112 162
Membres
111 447
dernier inscrit
jasontantane