Récupérer des entrées dans une liste pour créer des équipes de 3
Fermé
Lili
-
3 janv. 2015 à 00:39
ccm81 Messages postés 10543 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 18 mars 2023 - 6 janv. 2015 à 13:32
ccm81 Messages postés 10543 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 18 mars 2023 - 6 janv. 2015 à 13:32
A voir également:
- Récupérer des entrées dans une liste pour créer des équipes de 3
- Liste déroulante excel - Guide
- Créer une adresse mail - Guide
- Créer un compte gmail - Guide
- Créer un compte google - Guide
- Créer un compte instagram - Guide
4 réponses
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
3 janv. 2015 à 01:12
3 janv. 2015 à 01:12
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 ?
ccm81
Messages postés
10543
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
18 mars 2023
2 336
Modifié par ccm81 le 3/01/2015 à 10:53
Modifié par ccm81 le 3/01/2015 à 10:53
Bonjour à tous
Un essai (sans VBA)
https://www.cjoint.com/?3Adla1VJ0nj
Cdlmnt
Un essai (sans VBA)
https://www.cjoint.com/?3Adla1VJ0nj
Cdlmnt
Lili31h
Messages postés
4
Date d'inscription
samedi 3 janvier 2015
Statut
Membre
Dernière intervention
6 janvier 2015
3 janv. 2015 à 15:57
3 janv. 2015 à 15:57
C'est exactement ce que je veux mais il m'est imposé de le faire avec VBA.
Et donc c'est beaucoup plus compliqué pour moi...
Merci pour ta réponse
Et donc c'est beaucoup plus compliqué pour moi...
Merci pour ta réponse
ccm81
Messages postés
10543
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
18 mars 2023
2 336
3 janv. 2015 à 18:18
3 janv. 2015 à 18:18
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
Lili31h
Messages postés
4
Date d'inscription
samedi 3 janvier 2015
Statut
Membre
Dernière intervention
6 janvier 2015
6 janv. 2015 à 01:37
6 janv. 2015 à 01:37
Merci à toi. Tu me sors une épine du pied.
Cordialement
Cordialement
ccm81
Messages postés
10543
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
18 mars 2023
2 336
6 janv. 2015 à 13:32
6 janv. 2015 à 13:32
De rien,
Peux tu mettre le sujet à Résolu (en haut à droite de ton premier message)
Bon après midi
Peux tu mettre le sujet à Résolu (en haut à droite de ton premier message)
Bon après midi
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
3 janv. 2015 à 22:18
3 janv. 2015 à 22:18
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
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
3 janv. 2015 à 23:26
3 janv. 2015 à 23:26
Il y a une erreur dans le code à la ligne 29. Il faut la remplacer par :
Do Until NB = 0 And NL < 4 'éxécute jusqu'à ce que NB soit nul et NL soit inférieur à 4
3 janv. 2015 à 15:45
3 janv. 2015 à 15:56
Merci