Mélange de personnes au sein de groupes

Daguet

XLDnaute Nouveau
Bonjour à tous,

Je joins ici un fichier représentant l'organisation d'un évènement où les personnes vont se croiser au sein de groupes de 4 ou 5 personnes à chacune des trois phases.

Je recherche un système permettant de vérifier automatiquement (mise en forme conditionnelle?) si une personne a déjà été au cours de la ou des phases précédentes dans les même groupe qu'une personne de son groupe actuel... je ne sais pas si je suis clair:)

un exemple : si le 1 était dans le groupe de 2 lors de la première phase, ils ne peuvent plus se rencontrer dans chacune des deux phases suivantes....

Je fais la répartition manuellement mais je souhaite faire vérifier par Excel, on ne sait jamais, d'autant plus que le nombre de participant pourrait augmenter...

Merci pour votre aide

Daguet
 

Pièces jointes

  • test_groupes.xls
    21 KB · Affichages: 84

JNP

XLDnaute Barbatruc
Re : Mélange de personnes au sein de groupes

Re :),
Voici mon code commenté
Code:
Function Doublon(Individu As Range, Groupe As Range, Recherche As Range) As Boolean
' Fonction admettant la sélection de l'individu, de son groupe et de la phase à comparer
' renvoyant un booléen (Vrai ou Faux)
Dim Cellule As Range, Résultat1 As Integer, Résultat2 As Integer
' Dimensionne une cellule, et 2 entiers
Doublon = False
' Met le résultat de la fonction à Faux
Résultat1 = Recherche.Find(Individu, LookAt:=xlWhole).Column
' Recherche de la colonne de l'individu dans la phase
For Each Cellule In Groupe
' Pour chaque cellule dans le groupe
If Individu <> Cellule And Cellule <> "" And Individu <> "" Then
' Si ce n'est pas l'individu et que la cellule n'est pas vide
Résultat2 = Recherche.Find(Cellule, LookAt:=xlWhole).Column
' Recherche de la colonne de cellule
If Résultat1 = Résultat2 Then Doublon = True
' Si les colonnes sont semblables, alors le résultat est Vrai
End If
' Fin du test
Next
' Cellule suivante
End Function
La MFC ensuite est
Code:
=doublon(A3;A$3:A$7;$A$10:$M$14)
A3 pour l'individu (sans $ comme cela, en sélectionnant toute la phase, chaque cellule réagira à elle-même), A$3:A$7 pour le groupe (sans $ pour la colonne, comme cela elle s'appliquera pour chaque colonne) et $A$10:$M$14 pour la phase 2.
Ensuite, j'ai fait la même chose pour comparer phase 2 et phase 3, puis phase 3 et phase 1. On pourrait améliorer en mettant en 2ème condition l'inverse, mais comme ça rame déjà pas mal...
Bon courage :cool:
 

CISCO

XLDnaute Barbatruc
Re : Mélange de personnes au sein de groupes

Bonsoir à tous

Une possibilité en pièce jointe, sans macro, mais avec une tonne de noms car la mise en forme conditionnelle n'acceptait pas une formule aussi longue.

Le principe :

Par exemple, en A13, la formule repère la colonne du tableau précédent contenant le même contenu que A15, par exemple E3:E7

Puis elle fait =SOMME(NB.SI(A$10:A$14;E$3:E$7))>1. Si c'est vrai, c'est qu'il existe plus d'un nombre se trouvant et dans A10:A14, et dans E3:E7. La cellule change de couleur. Si c'est faux, c'est qu'uniquement le contenu de A15 se trouve dans A10:A14 et dans E3:E7. La cellule ne change pas de couleur.

@ plus
 

Pièces jointes

  • test_groupes(1)ter.xls
    35.5 KB · Affichages: 76

CISCO

XLDnaute Barbatruc
Re : Mélange de personnes au sein de groupes

Bonsoir

Une petite explication

...
Par exemple, en A13, la formule repère la colonne du tableau précédent contenant le même contenu que A15, par exemple E3:E7

@ plus

NBSIB1 = NB.SI(feuil1!$B$3:$B$7;feuil1!A13)
renvoie 1 si A13 est dans la plage B3:B7

NBSIC2 = NB.SI(feuil1!$C$3:$C$7;feuil1!A13)
renvoie 1 si A13 est dans la plage C3:C7

....
NBSIM1 = NB.SI(feuil1!$M$3:$M$7;feuil1!A13)
renvoie 1 si A13 est dans la plage M3:M7

mais comme la valeur A13 n'est qu'une fois dans le tableau A3:M7, un seul de ces noms vaut 1. Les autres valent 0.

groupetableau1= NBSIB1+NBSIC1*2+NBSID1*3+NBSIE1*4+NBSIF1*5+NBSIG1*6+NBSIH1*7+NBSII1*8+NBSIJ1*9+NBSIK1*10+NBSIL1*11+NBSIM1*12
renvoie 0 si A13 est dans la plage A3:A7, 1 si A13 est dans la plage B3:B7, 2 si A13 est dans la plage C3:C7.... et 12 si A13 est dans la plage M3:M7. Autrement dit, groupetableau1 renvoie le numéro de la colonne où se trouve A13 moins 1

tableauA= DECALER(feuil1!$A$3;;groupetableau1;5)
renvoie la plage du tableau du haut où ce trouve A13.

La mise en forme =SOMME(NB.SI(A$10:A$14;tableauA)) est supérieure à 1 si il a plus d'un nombre et dans A10:A14 et dans tableauA --> cellule en bleu

Les noms NBSI.. finissant par 2 font de même, mais du tableau du bas vers le tableau du milieu.

groupetableau2 = NBSIB2+NBSIC2*2+NBSID2*3+NBSIE2*4+NBSIF2*5+NBSIG2*6+NBSIH2*7+NBSII2*8+NBSIJ2*9+NBSIK2*10+NBSIL2*11+NBSIM2*12
renvoie le numéro de la colonne, du tableau du milieu, où se trouve le contenu de la cellule où se fait la MFC, dans le tableau du bas, moins 1.

tableauB =DECALER(feuil1!$A$10;;groupetableau2;5)
renvoie la plage du tableau du milieu où se trouve le contenu de la cellule où se fait la MFC.

La mise en forme =SOMME(NB.SI(A$17:A$21;tableauB)) est supérieure à 1 si il a plus d'un nombre et dans A17:A21 et dans tableauB --> cellule en rouge

@ plus
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Mélange de personnes au sein de groupes

Bonsoir

Dans ce cas, ilme semble en efet que le code VBA est plus simple à mettre en place... Si la MFC avec des formules va plus vite, tant mieux.

Au passage, deux "petites" questions :

* Comment fait-on pour connaitre le temps nécesssaire pour un calcul ?

* Est-ce que quelqu'un aurait une idée pour que s'affiche dans chaque cellule du second tableau, phase 2, une liste déroulante ne comprenant pas les nombres déja tirés dans ce tableau, ni ceux des groupes de la phase 1 correspondant au début du groupe en cours ?

Idem avec le tableau de la phase 3.

Cela faciliterait grandement le "travail" de Daguet. Et les MFC proposées dans nos précédents posts seraient inutiles !!!!

@ plus
 

david84

XLDnaute Barbatruc
Re : Mélange de personnes au sein de groupes

Bonsoir Daguet Cisco, JNP
Cisco j'ai pas suivi ce fil donc peux-tu donner un exemple concret de ce que tu demandes au sujet des listes déroulantes histoire que je comprenne bien ce dont il est question ?
A+
 

ROGER2327

XLDnaute Barbatruc
Re : Mélange de personnes au sein de groupes

Bonsoir à tous
Un bricolage avant d'aller se coucher...​
Bonne nuit !

ROGER2327
#3634


Mardi 17 Merdre 137 (Saint Saint Woland, professeur, SQ)
15 Prairial An CCXVIII
2010-W22-4T23:49:38Z
 

Pièces jointes

  • test_groupes_3634.xls
    26 KB · Affichages: 57

david84

XLDnaute Barbatruc
Re : Mélange de personnes au sein de groupes

Bonjour à tous,
Salut Cisco,
j'ai fait un exemple de liste sans l'intégrer au tableau (histoire de savoir si c'est ce que tu veux).
A+
 

Pièces jointes

  • test_groupes_daguet(1)ter.zip
    17.9 KB · Affichages: 27

david84

XLDnaute Barbatruc
Re : Mélange de personnes au sein de groupes

Bonjour
suite à la demande de Cisco ci-joint un essai fait uniquement sur le tableau 2 en se servant du tableau 1.
Cordialement
 

Pièces jointes

  • test_groupes_daguet_V2.zip
    26.4 KB · Affichages: 28

Discussions similaires

Statistiques des forums

Discussions
312 295
Messages
2 086 960
Membres
103 406
dernier inscrit
elliott.joliman@bforbank.