Récupérer des entrées dans une liste pour créer des équipes de 3
Lili
-
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je voudrais récupérer 3 noms parmi une liste de 50 noms ( créée sous Excel ) pour les afficher dans un autre tableau Excel sans qu'il n'y ait redondance.
Ceci afin de créer des équipes de 3 personnes sans qu'elles n'apparaissent plusieurs fois.
Pouvez vous m'aider ?
Lili
Je voudrais récupérer 3 noms parmi une liste de 50 noms ( créée sous Excel ) pour les afficher dans un autre tableau Excel sans qu'il n'y ait redondance.
Ceci afin de créer des équipes de 3 personnes sans qu'elles n'apparaissent plusieurs fois.
Pouvez vous m'aider ?
Lili
A voir également:
- Récupérer des entrées dans une liste pour créer des équipes de 3
- Créer un lien pour partager des photos - Guide
- Créer une liste déroulante excel - Guide
- Comment créer un groupe whatsapp - Guide
- Créer un compte google - Guide
- Comment récupérer des messages supprimés sur whatsapp - Guide
4 réponses
Bonsoir Lili, bonsoir le forum,
Pas vraiment compris... On pourrait couper aléatoirement trois nom de l'onglet Feuil1 et les coller dans l'onglet Feuil2. Puis recommencer, couper 3 noms aléatoirement de Feuil1 et les coller dans l'onglet Feuil3, etc.
C'est ça que tu voudrais ?
Pas vraiment compris... On pourrait couper aléatoirement trois nom de l'onglet Feuil1 et les coller dans l'onglet Feuil2. Puis recommencer, couper 3 noms aléatoirement de Feuil1 et les coller dans l'onglet Feuil3, etc.
C'est ça que tu voudrais ?
C'est un peu le même principe, un exemple
https://www.cjoint.com/?3AdszDmeevX
RQ. donner la taille des équipes en D1
Cdlmnt
https://www.cjoint.com/?3AdszDmeevX
RQ. donner la taille des équipes en D1
Cdlmnt
Bonsoir le fil, bonsoir le forum,
Lili, en pièce jointe une autre proposition avec le code commenté ci-dessous :
Le fichier :
https://www.cjoint.com/c/EAdwyVqgRuA
Lili, en pièce jointe une autre proposition avec le code commenté ci-dessous :
Sub Macro1() Dim O As Object 'déclare la variable O (Onglet) Dim OS As Object 'déclare la variable OS (Onglet Source) Dim NL As Byte 'déclare la variable NL (Nombre de Lignes) Dim LI As Byte 'déclare la variable LI (LIgne) Dim NE As Byte 'déclare la variable NE (Numéro de l'Équipe) Dim NB As Byte 'déclare la variable NB (NomBre de joueurs) Dim OD As Object 'déclare la variable OD (Onglet Destination) Application.ScreenUpdating = False 'masque les rafraîchissements d'écran '**************************** 'efface les anciennes équipes '**************************** Application.DisplayAlerts = False 'masque les messages d'Excel For Each O In Sheets 'boucle sur tous les onglets du classeur If Not O.Name = "Feuil1" Then O.Delete 'si le nom du classeur est différent de "Feuil1", efface l'onglet Next O 'prochain onglets de la liste Application.DisplayAlerts = True 'affiche les messages d'Excel '******************** 'création des équipes '******************** Set OS = Sheets("Feuil1") 'définit l'onglet OS NE = 1 'initialise le numéro d'équipe NE NL = OS.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit le nombre de lignes éditées NL dans la colonne 1 (=A) de l'onglet OS Do Until NL < 4 'éxécute jusqu'à ce que NL soit inférieur à 4 If NB = 0 Then 'condition : si le nombre NB est égal à zéro Sheets.Add after:=Sheets(Sheets.Count) 'ajoute un onglet en dernière position ActiveSheet.Name = "Équipe " & NE 'renomme l'onglet avec le numéro de l'équipe NE Set OD = ActiveSheet 'définit l'onglet OD End If 'fin de la condition Randomize 'lance le générateur de nombre aléatoires LI = Int((NL - 1) * Rnd + 2) 'génère une nombre aléatoire LI entre 2 et DL 'copie la cellule ligne LI, colonne 1 (=A) de l'onglet OS dans la cellule ligne NB+1, colonne 1 (=A) de l'onglet OD OS.Cells(LI, 1).Copy OD.Cells(NB + 1, 1) OS.Cells(LI, 1).Delete xlShiftUp 'supprime la cellule copiée en décalant vers le haut 'incrémente le nombre NB, mais quand NB vaut trois alors, NB vaut zéro et NE vaut NE+1 NB = NB + 1: If NB = 3 Then NB = 0: NE = NE + 1 NL = NL - 1 'décrémente le nombre de lignes NL Loop 'boucle OS.Select 'sélectionne l'onglet OS Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran End Sub
Le fichier :
https://www.cjoint.com/c/EAdwyVqgRuA
Merci