Répartition VBA Quine Loto

Or je comprend maintenant qu'il n'en est rien : Tu as quand même généré des masques valides avec les familles je suppose..

Tu as ensuite remplacé les 1 par une formule ALEA avant de faire ton collage spécial c'est ça ?

Regarde le mega fichier envoyé en mp, sans macro au départ ...

Il y a 2 onglets :

  1. cet onglet est "blindé" de formules alea pour choisir
    1. 6 familles parmi les 84,
    2. choisir ensuite une grille dans chaque famille
    3. et ensuite "battre les cartes" des n° 1 à 9 pour la première colonne du carton, 1 à 10 pour chaque colonne intermédiaire, et enfin 1 à 11. capture d ecran 66
  2. cet onglet reprend les choix aléatoires faits et va construire le carton ... c'est cette zone que je recopie 15.000 fois laissant le soin à excel de rejouer les formules alea capture d ecran 67

Ok merci le sujet est donc clos.

A+

Bonsoir,

je sais le sujet est clos, mais je l'ai vu trop tard...

Ci dessous un code pour créer une grille valide en respectant :
5 numéros par ligne, de 1 à 2 numéros par colonnes et pas de colonne vide, du coup on ne peut tomber que sur une seule combinaison "globale" par carton :
3 colonnes à 1 numéro, et 6 colonnes à 2 numéros :

Option Explicit

Public MonDico As New Scripting.Dictionary

Sub CréaCarton()
    Dim Valeur_Temporaire, Numéro As Integer, A
    Dim I, Temp, NbCol, Ligne
    Dim Tablo(1 To 3, 1 To 9)
    ' on met des "x" partout dans le tableau de sortie
    For I = 1 To 9
        Tablo(1, I) = "x"
        Tablo(2, I) = "x"
        Tablo(3, I) = "x"
    Next I
    Numéro = 1
    ' création aléatoire d'une série des 9 colonnes
    Do
        If Numéro = 10 Then Exit Do
        Valeur_Temporaire = Int(9 * Rnd) + 1
        If Not MonDico.Exists("_" & Valeur_Temporaire) Then
            MonDico.Add "_" & Valeur_Temporaire, Numéro
            ' on incrémente Ligne
            Numéro = Numéro + 1
        End If
    Loop
    ' choix aléatoire de la position du numéro unique pour les 3 premières colonnes du dico
    ' qui ne sont pas forcément les 3 première du carton
    For I = 1 To 3
        Temp = MonDico("_" & I)
        Ligne = Int(Rnd * 3) + 1
        Tablo(Ligne, Temp) = 1
    Next
    ' choix aléatoire de la position des 2 numéros pour les 6 colonne restantes
    For I = 4 To 9
        NbCol = 0
        Temp = MonDico("_" & I)
        Do
            If NbCol = 2 Then Exit Do
            Ligne = Int(Rnd * 3) + 1
            If Tablo(Ligne, Temp) = "x" Then
                Tablo(Ligne, Temp) = 1
                NbCol = NbCol + 1
            End If
        Loop
    Next I
    ' affichage du résultat
    Range("A1").Resize(3, 9) = Tablo
    ' on vide la mémoire
    MonDico.RemoveAll
    Erase Tablo
End Sub

Le fichier avec la mise en forme conditionnelle pour voir le résultat :

Mais visuellement, bien qu'en ayant lu les messages du fil, l'interprétation de Stelson : ne pas avoir plus de 2 numéros consécutifs par ligne et graphique plus joli.

Ca me plis, je crois que je vais continuer de travailler dessus, d'autant plus que j'ai une application de tirage de numéro de "Loto Bingo" avec lecture des textes associés à ces derniers. D'ailleurs galopin01, si vous aviez les textes manquant ou bien de nouveaux par rapport à ceux que je connais, ils seront les bienvenus !

@ bientôt

LouReeD

Non en fait oubliez ce que j'ai dis.... Je suis loin, mais alors loin de ce que vous faites !

@ bientôt

LouReeD

Rechercher des sujets similaires à "repartition vba quine loto"