Microsoft 365 Afficher des doublons selon des critères

Patoche42

XLDnaute Junior
Bonjour à tous,
Je ne suis pas un expert en VBA mais j'ai réussi à créer se fichier et j'en suis assez content vu mon niveau🤗.
Mais là, mon problème dépasse mes compétences.

Je m'explique …
L'onglet "Tablée du vendredi" me sert à placer les gens sur des tables de 16 personnes max.
J'ai créer un tableau dans "TableauSource vendredi" qui me crée la liste de personne à placer.
Pour éviter de placer 2 fois les mêmes personnes j'ai appliquer une forme conditionnel.

Problème N° 1 qui se pose à moi:
C'est que si j'ai une réservation de 20 pers. je serais obligé de les placer sur 2 tables se qui va me créer un doublon.
Est qu'il y a un moyen de recalculer le Nb de pers. sur la 2ème et de ne pas les considérer comme des doublons?
Dans mon exemple : sur la table 1 " YAN B." il y aura 2 pers. et sur la table 2 ,8 pers.

Problème N° 2 qui se pose à moi:
J'aimerai que si une personne est déjà placé cela me la supprime de la liste personnes à placer.

J'espère avoir été assez clair.
Ca fait plusieurs jours que j'y suis dessus à base de formule et de VBA, en vain.😕
En vous remerciant par avance de vous y pencher dessus
 

Pièces jointes

  • Saint Patrick.xlsm
    127.6 KB · Affichages: 3
Solution
Bonjour,

Problème N° 1 :
une proposition par formule de répartition sur les tables. A noter que j'ai changé le nom des tableau car Tableau___6 et autres noms automatiques n'est pas très parlant.

Pour la table 1 :
=SI([@[NOM 1]]<>0;MIN($G$5-SOMME(B$12:B12);SOMME.SI(TSource[Nom+Prénom];[@[NOM 1]];TSource[Places]));0)
Qui donne 8 places pour Yann B à la table 1

Pour la table 2 et suivantes (non faites) :
=SI([@[NOM 2]]<>0;MIN($G$5-SOMME(D$12:D12);SOMME.SI(TSource[Nom+Prénom];[@[NOM 2]];TSource[Places])-SOMME.SI([NOM 1];[@[NOM 2]];[Nb 1]));0)
Qui donne 2 pou Yann b à la table 2

J'ai également remplacé les recherchev par des somme.si, plus avantageux et qui retournera 0 si le nom n'est pas trouvé.

J'ai également supprimé les...

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Problème N° 1 :
une proposition par formule de répartition sur les tables. A noter que j'ai changé le nom des tableau car Tableau___6 et autres noms automatiques n'est pas très parlant.

Pour la table 1 :
=SI([@[NOM 1]]<>0;MIN($G$5-SOMME(B$12:B12);SOMME.SI(TSource[Nom+Prénom];[@[NOM 1]];TSource[Places]));0)
Qui donne 8 places pour Yann B à la table 1

Pour la table 2 et suivantes (non faites) :
=SI([@[NOM 2]]<>0;MIN($G$5-SOMME(D$12:D12);SOMME.SI(TSource[Nom+Prénom];[@[NOM 2]];TSource[Places])-SOMME.SI([NOM 1];[@[NOM 2]];[Nb 1]));0)
Qui donne 2 pou Yann b à la table 2

J'ai également remplacé les recherchev par des somme.si, plus avantageux et qui retournera 0 si le nom n'est pas trouvé.

J'ai également supprimé les SIERREUR qui peuvent masquer des erreurs inattendues qui pourraient nous renseigner sur les actions à faire, pendant la phase de tests et développement. Vous les remettrez si vous voulez quand vous aurez terminer.

Problème N° 2

Dans le fichier joint, vous verrez un nouveau nom : "Non_Placés" et définit par "=Organisation!$Q$2#". vous remarquez le # qui vous signale que Q2 est le début d'une liste dynamique (excel 365 et 2021) qui s'allonge automatiquement à partir de Q2.

Dans organisation vous verrez une liste des gens déjà placés (O2) qui s'allongera au fur et à mesure que vous placerez les gens et une autre (Q2) qui se réduira d'autant. Ce sont des listes faites avec les nouvelles fonctions dynamiques.
J'ai excel 2021 je n'ai donc pas accès à toutes les fonctions de excel 365 avec lesquelles vous pourriez simplifier la formule de O2 :
=LET(Lgs;LIGNES(TVendredi);Cols;COLONNES(TVendredi);Cnt;SEQUENCE(Lgs*Cols);Uniques;UNIQUE(INDEX(TVendredi;MOD(Cnt-1;Lgs)+1;ENT((Cnt-1)/Cols)));FILTRE(Uniques;ESTTEXTE(Uniques);""))

Eventuellement créez une nouvelle discussion sur la question

Cordialement
 

Pièces jointes

  • Saint Patrick.xlsm
    130.7 KB · Affichages: 8
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
315 088
Messages
2 116 087
Membres
112 656
dernier inscrit
VNVT