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

XL 2016 Besoin d'aide tirage au sort sans doublons

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

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