Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 grille aléatoire sans doublon

Gaborn

XLDnaute Nouveau
je crée une grille aléatoire sans doublon
j'arrive avec les doublons mais sans c'est le problème
voici mon script d'origine
Merci de votre aide
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Un exemple de code utilisant le module de classe ListeAléat :
VB:
Sub Main()
   Dim LAt As New ListeAléat, T(), A&, L&, C&, P&
   T = Cells(2, 2).Resize(50, 35).Value
   Randomize
   LAt.Init 1726
   For L = 1 To 50: For C = 1 To 35
      If T(L, C) <> 0 Then P = P + 1: A = LAt.Aléat(P) Else A = 0
      If A = 0 Then T(L, C) = Empty Else T(L, C) = A
      Next C, L
   Cells(2, 2).Resize(50, 35).Value = T
   End Sub
Un autre code (ça dépend de ce que vous aviez voulu faire) :
VB:
Sub Main()
   Dim LAt As New ListeAléat, T(), L&, C&, P&, A&
   ReDim T(1 To 50, 1 To 35)
   Randomize
   LAt.Init 50 * 35
   For L = 1 To 50: For C = 1 To 35
      P = P + 1: A = LAt.Aléat(P): If A > 1726 Then A = 0
      If A = 0 Then T(L, C) = Empty Else T(L, C) = A
      Next C, L
   Cells(2, 2).Resize(50, 35).Value = T
   End Sub
Un autre encore :
Code:
Sub Main()
   Dim LAt As New ListeAléat, T(), L&, C&, P&, A&
   ReDim T(1 To 50, 1 To 35)
   Randomize
   LAt.Init 1726
   For L = 1 To 50: For C = 1 To 35
      P = P + 1: A = LAt.Aléat(P)
      If A = 0 Then Exit For
      T(L, C) = A
      Next C, L
   Cells(2, 2).Resize(50, 35).Value = T
   End Sub
 

Pièces jointes

  • ListeAléatGaborn.xlsm
    36.7 KB · Affichages: 5
Dernière édition:

Discussions similaires

Réponses
2
Affichages
329
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…