XL 2016 Besoin d'aide tirage au sort sans doublons

jmichel80

XLDnaute Nouveau
Bonjour à tous,

Je suis friand de ces forums mais je n'ai toujours pas trouvé la solution a mon problème.

Je vous joint mon fichier que je continuerai d'alimenter ensuite.

Mon problème vient de la page base de donné ou j'ai mis un code VBA avec bouton pour tirage au sort ainsi qu'un nombre d'équipe par poules.

Mon tirage s'effectue correctement par nombre d'équipe hors je me retrouve avec des doublons soit un club groupe A et C.

Comment puis-je supprimer cette erreur svp ?

Merci de votre retour ,

Amicalement
 

Pièces jointes

  • Gestion Tournoi jmf1 2020.xlsm
    129.6 KB · Affichages: 23

CHALET53

XLDnaute Barbatruc
Bonjour,
Normal, dans le programme que je connais bien (à partir duquel tu travailles), tu as supprimé deux instructions qui évitent à une équipe de participer au tirage dès lors qu'elle a déjà été sélectionnée :

For n = LBound(t) To UBound(t)
Cells(2 + t(n), 2).Select
Selection.ClearContents
Cells(2 + t(n), 1).Select
Selection.ClearContents
Next n

Dans ton programme :

For n = LBound(t) To UBound(t)
Cells(2 + t(n), 2).Select

Cells(2 + t(n), 1).Select

Next n

Si tu veux absolument garder le contenu des colonnes A et B
Tu dupliques ces deux colonnes en AA et AB (par exemple) et tu fais travailler ton programme avec ces deux colonnes au lieu de A et B
 

Dranreb

XLDnaute Barbatruc
Notez que pour obtenir simplement une seule fois des noms uniques tirés au hasard dans la feuille Base de données, cette procédure suffirait amplement :
VB:
Option Explicit
Sub Tirage1()
   Dim TNoms(), NbNoms As Long, NbParEqu As Long, TRés(), _
      P As Long, L As Long, C As Long, N As Long
   TNoms = Feuil2.[B3].Resize(Feuil2.[B65530].End(xlUp).Row - 2).Value
   NbNoms = UBound(TNoms, 1)
   NbParEqu = Feuil2.[K1].Value
   ReDim TRés(1 To 10, 1 To 24)
   Randomize
   With New ListeAléat
      .Init NbNoms
      For P = 1 To NbNoms
         If P Mod NbParEqu = 1 Then C = C + 2: L = 1 Else L = L + 1
         N = .Aléat(P)
         TRés(L, C - 1) = N
         TRés(L, C) = TNoms(N, 1)
         Next P: End With
   Feuil2.[C3:Z12].Value = TRés
   End Sub
 

Discussions similaires

Statistiques des forums

Discussions
315 095
Messages
2 116 159
Membres
112 673
dernier inscrit
ìntellisoft