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