COMBOBOX interdépendants
-
COMBOBOX interdépendants
Posté par Séb sur 24 janvier 2022 à 16h13Bonjour à tous,
Je souhaite pouvoir rendre 2 combobox dépendants entre eux ; à savoir si je sélectionne une ou plusieurs valeurs dans le 1er, cela me filtre les valeurs du 2e et vice-versa.
CBX1 : liste d’activités
CBX2 : liste des personnes = champ personne (ce qui pose problème)
Je précise qu’à une activité peuvent être rattachées une ou plusieurs personnes et qu’à une personne peuvent être rattachés une ou plusieurs activités. Et que j’utilise une seule liste dans laquelle les 2 champs “Activité” et “Responsable” figurent.
L’idée finale serait ensuite de pouvoir filtrer une galerie en fonction des “selecteditems” de chaque combobox.
Auriez-vous une idée ?
Merci d’avance !
PostID=OwMnA3HFeAv42u0
Séb a répondu Il y a 11 mois, 4 semaines 1 Membre · 28 Réponses -
28 Réponses
-
S’il n’y a pas trop de personnes ou de listes d’activités, je passerais par des if sur le CBX2 en fonction du Selecteditems du CBX1.
CommentID=W5gUBfkA5DjCWeO, PostID=OwMnA3HFeAv42u0
-
J’ai oublié de préciser que mon champ personne peut contenir plusieurs personnes à la fois :
Activité A / Personne A et personne B
Activité B / Personne B
Activité C / Personne A et personne C
Activité D / Personne A + B + C
Cela a peut être une incidence
CommentID=mfedh7sOjovUPSj, PostID=OwMnA3HFeAv42u0
-
si tu choisis zone de liste déroulante, tu vas pouvoir mettre plusieurs choix dans la propriété defautselecteditems
CommentID=LHSSKzw0MVFjlbp, PostID=OwMnA3HFeAv42u0
-
bon, je viens de tester un peu tout ca….. c’est une mauvaise idée. cela complique bcp…
CommentID=WFMXhQn2PpghXsv, PostID=OwMnA3HFeAv42u0
-
Je reste persuadé que le type de champ personne complique les choses.
=>J’avais déjà fait la même chose mais avec du type texte en passant par 2 variables “croisées” et en gérant en plus le blank et le empty. Le On change de chaque cbx permettait de mettre à jour le contenu de la variable, qui était placé sur leur Items.
J’ai pensé à faire la relation entre des collections créées pour le besoin :
-
Une qui listerait les activités avec l’ID de la la liste SP correspondant
-
Une autre qui listerait chaque personne d’une ligne de cette même liste mais avec l’ID => je bloque.
Et “joindre” les données par la “clé” ID.
Serait-ce une bonne idée ?
CommentID=E72yK0Hlhm6HnMK, PostID=OwMnA3HFeAv42u0
-
-
@S avant de te donner une solution, il faudrait que je sache comment tes données sont structurées dans tes listes.
-
Est-ce que dans ta liste qui fait le lien entre Activité et Personne les liens se font ainsi :
A1 / P1
A1 / P2
A1 / P3
A2 / P1
A2 / P4ou comme ceci (qui correspond à ce que tu as mis plus haut, mais je voulais être sûr) :
A1 / P1;P2;P3
A2 / P1;P4Auquel cas, je suppose que tu utilises une colonne de type personne où tu as coché la cache qui autorise des valeurs multiples, c’est ça ?
Parce-que si t’as encore la possibilité de choisir je te recommande vivement de laisser tomber les champs à valeurs multiples : trop galère.
Néanmoins, on pourra trouver une solution au 2 cas de figure. Donc, à toi de choisir.
Par contre, faudra que je simule complètement le cas de figure chez moi pour arriver à te sortir le système de filtrage qui marche proprement.
D’ailleurs, autre question :
-
Comment sont structurées les données de ta galerie que tu veux filtrer : je suppose qu’il y a à minima une colonne Activité et une colonne Responsable mais sont-elles également à valeurs multiples ?
Pense bien à répondre à toutes mes questions pour qu’on avance efficacement… 😉
CommentID=ShYJfqsUtC6ULtF, PostID=OwMnA3HFeAv42u0
-
-
Bonjour @R3dKap ,
Voici les réponses :
-
La structure est celle que tu reprends en 2e à savoir :
A1 / P1;P2;P3
A2 / P1;P4
J’ai bien une colonne de type personne dans ma liste SP avec possibilité de choix multiples. Et je confirme le côté “galère” !!!😉
-
La galerie est basée sur la même liste SP et je souhaite y faire apparaitre l’Activité et le Responsable (et d’autres champs). Les propriétés sont donc héritées :
-
choix multiple pour le Responsable
-
choix unique pour l’Activité
-
Par contre je souhaite pouvoir sélectionner 0, un ou plusieurs Activité et/ou 0, un ou plusieurs Responsable. (le 0/0 m’affichant l’intégralité de la liste) Histoire de complexifier davantage😅 .
Et dans ma Liste SP, je peux avoir plusieurs fois le couple Activité/Responsable ou avoir aussi A1 / P2;P3 ou A1 / P5 car j’ai une autre colonne SousActivité.
Mais pas plusieurs fois une Sous Activité pour une Activité
En gros :
A1 / SA1 / P1
A1 / SA2/ P1;P2
A1 / SA3 / P2
A2 / SA1 / P4;P2
A2 / SA2 / P1;P2
etc.. les combinaisons sont multiples. Et je souhaite filtrer via mes combobox sur les champs Activité et Responsable. Mon champ SousActivité est de type texte parfois sur plusieurs lignes
En espérant avoir répondu à tes interrogations.
N’hésite pas au besoin et merci pour ton aide.
CommentID=e25O5wpK4qEqFf1, PostID=OwMnA3HFeAv42u0
-
-
OK c’est noté, merci pour les détails…
Votre commande est en cours de préparation… 😋
CommentID=iWmWGXTuJcwcb1i, PostID=OwMnA3HFeAv42u0
-
@S mince, il me manque une info : quel est le type de la colonne Activité ? Choix ? Texte ?
CommentID=X7HNUWB3eQMDosh, PostID=OwMnA3HFeAv42u0
-
Ah… Challengons-ça 2mn et allons directement au coeur du pb potentiel que cela peut engendrer… Il faut que fonctionnellement je m’assure que l’on est sur la bonne voie…
Si je suis l’utilisateur U1 et que je crée une activité “Récréation” et qu’un autre utilisateur U2 crée une activité “Recreation” il y aura 2 activités de récréation dans la liste déroulante des activités : 😐
-
Récréation
-
Recreation
Autre point : s’il y a une combo box Activités sur l’écran pour filtrer ça veut dire que les libellés de ces activtés sont plus courts et que l’on aura pas des activités du type : “J’ai décidé de changer la couleur de ma voiture“. Sinon, ça ressemblerait à pas grand chose…
Au vu de ces éléments, pour quelle raison ton champ Activité est de type texte et pas plutôt de type Choice voire Lookup vers une liste d’activités ?
CommentID=2hhnQHrHOMp8KHX, PostID=OwMnA3HFeAv42u0
-
-
Pour le moment, l’utilisateur n’a pas la possibilité de créer d’Activité. Les données ont été travaillées proprement dans la liste SP servant de BDD.
L’utilisateur doit pouvoir consulter les activités (et donc sous-activités) auxquelles il est rattaché pour mettre à jour un statut (A faire/fait/en cours/abandonné…) et apporter ses Pj, ses commentaires, repousser une échéance…
A terme, il pourra créé un enregistrement en complétant et choisissant les différents champs. En ce qui concerne l’Activité, il devra la sélectionner dans un menu déroulant qui a pour source un fichier de mapping Excel.
CommentID=4c434ducXnllueW, PostID=OwMnA3HFeAv42u0
-
Je vois… Mais du coup de votre côté, c’est-à-dire du côté de ceux qui gèrent aujourd’hui les activités, pourquoi n’avoir pas décidé malgré tout d’en faire une liste ? Pour éviter l’utilisation de lookups que vous ne maîtrisez peut-être pas encore bien aujourd’hui ?
Désolé de creuser encore mais, de mon point de vue, construire une liste déroulante sur la base d’un champ texte n’a pas vraiment de sens. Une liste déroulante implique pour moi un référentiel quelque part (que soit un Choice ou une liste dédiée).
Je sais pas, peut-être si tu me donnes quelques exemples je comprendrais mieux.
En attendant je vais déjà attaquer le pb…
CommentID=D3993ZYiHo9hW6v, PostID=OwMnA3HFeAv42u0
-
A la base la Liste SP a été créée à partir d’un fichier Excel et le champ Activité a été importé comme ça. Mais je suis ouvert à toute proposition !! 😀
Possiblement j’ai 87 valeurs pour ce champ sous forme de code alphanum avec une correspondance Texte dans une autre colonne. Alors incrémenter toutes ces valeurs dans une liste de choix sous List…pffff !!! D’où mon fichier de Mapping Excel.
Tu trouveras en PJ un extrait de ma List SP (en version Excel).
Et pour ton info, je commence à utiliser le Lookup mais n’en suis pas maitre.
CommentID=Ztj1XhrNgA4Ifzo, PostID=OwMnA3HFeAv42u0
-
Aaaah… Voilàaaaa… 😀 On arrive au cœur du problème… 😉
De manière générale, la manière dont tu structures tes données est absolument capital pour que ton application soit non seulement facile à réaliser mais également pour que ses performances et l’expérience de tes utilisateurs soient bonnes…
Alors, je te recommande vivement de prendre quelques minutes (pas plus) pour construire de “vraies” listes SharePoint avec des liens entre elles pour qu’elles représentent la réalité et que ça te facilite les choses par la suite.
Cela impliquera bien sûr que tu te mettes sérieusement au LookUp() 😉. Mais tu as tout intérêt à t’y coller car c’est réellement la bonne pratique. Et je serais là pour t’aider au besoin.
Donc… Voici comment je te suggère de procéder…
Créer la liste des activités
-
Dans ton fichier Excel crée un onglet appelé Activités qui va servir à créer la liste des activités
-
Dans cet onglet copie uniquement les colonnes CODE_ACT et LIB_ACT de ton tableau global
-
Renomme tes colonnes CODE_ACT en Titre et LIB_ACT en scLibelle (attention pas d’accents, pas d’espaces) :
-
Nomme ce tableau Excel Activités :
-
Utilise la fonction de suppression de doublons d’Excel pour ne plus avoir de doublons dans cette liste d’activités (ne coche que la colonne Titre pour éviter de conserver des doublons parce-que leurs libellés ne seraient pas rigoureusement identiques) :
-
Sauvegarde ton fichier Excel
-
Utilise la création de liste SharePoint basée sur un fichier Excel pour créer une liste avec toutes les activités (choisi bien le tableau Activités et positionne les types de colonnes ainsi :
-
Appelle ta liste Activites (pas d’accents non plus) et clique sur Créer :
Adapter ta liste globale
Maintenant on s’occupe de ta liste globale. Je te propose de la réimporter après l’avoir retouchée ainsi dans Excel :
-
Supprime la colonne LIB_ACT
-
Renomme tes colonnes…
-
Renomme CODE_ACT en Titre
-
Renomme SOUS_ACT en scSousActivite (sans accents -> note : on essaie toujours de donner des noms de colonnes très parlant quitte à ce qu’ils soient un peu longs)
-
Renomme AGENT en scAgent (ou scResponsable car tu parlais de “responsable” au début de ton post)
-
Renomme ETAT en scEtat
-
-
Sauvegarde ton fichier
-
Importe ce tableau Excel dans SharePoint en définissant les types de colonnes comme ci-dessous…
-
Titre -> Titre
-
scSousActivite -> Une ligne de texte (sauf si tu veux en faire un choix, mais les libellés m’ont l’air assez longs)
-
scAgent -> là idéalement il faudrait une colonne de type Personne pour qu’elle représente vraiment le compte M365 de la personne dans l’AD, mais je pense que l’import de liste Excel ne supporte pas ce type de données -> effectivement, je viens de vérifier ; mais y’a un sujet à creuser là, passke le jour où tu voudrais filtrer ta liste sur l’agent… 😬 ; tiens et d’ailleurs comment as-tu fait de cette colonne une colonne à choix multiples ? Tu l’as importée en tant que Choix puis t’as modifié la colonne pour la rendre multi-valeurs ?) ; donc là je te laisse choisir pour que t’arrives à avoir ta colonne à choix multiple
-
scEtat -> Choix
-
-
Importe ta liste et nomme-là comme tu veux (moi je l’ai appelée GestionActivites) mais sans accents et sans espaces
-
Va dans les paramètres de ta liste et crée une nouvelle colonne nommée scActivite de type Recherche -> la page se recharge
-
Ensuite positionne ses caractéristiques ainsi (attend que la page se recharge encore une fois que tu auras choisi ta liste dans la première liste déroulante) :
-
Enregistre la colonne
-
Va sur l’affichage de la liste et déplace ta colonne scActivite pour la mettre entre Titre et scSousActivite :
-
Clique sur Modifier en mode grille et copie/colle (CTRL-C/CTRL-V) toutes les données de la colonne Titre vers la colonne scActivite comme si tu étais dans Excel :
Voââââlà ! Là on est prêt pour commencer à bosser dans Power Apps… Dis-moi quand c’est bon de ton côté et on continue…
CommentID=oVQA82BjtmXjMnv, PostID=OwMnA3HFeAv42u0
-
Connectez-vous pour répondre.