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

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

Bonsoir Daguet ,
Un exemple en MFC avec une fonction personnalisée.
Bonne soirée
 

Pièces jointes

  • test_groupes(1).xls
    42.5 KB · Affichages: 79

Daguet

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

Bonjour JNP, Bonjour le Forum,

Merci JNP pour ce fichier, je vois que ça fonctionne, je vais maintenant essayer de le comprendre

A bientôt,

Daguet
 

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
 

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

JNP

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

Salut Cisco ,
Bravo. Très performant sur la vitesse .
Par contre, j'ai pas tout suivi de la méthode avec tous les noms .
Bonne soirée
 

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:

JNP

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

Re ,
Une petite explication
Merci beaucoup .
Je sais pas si je deviendrai un bon formuliste un jour, VBA me parrait tellement plus simple ... Mais j'ai pu le constater, moins rapide que les formules .
Peut-être qu'un mixte des 2 avec WorkSheetFonction .
Bonne journée
 

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…