Calc - Listes déroulantes pb multiples

Bonjour, je rencontre des difficultés à réaliser certaines manipulations concernant les listes déroulantes sur Libre Office Calc. J’ai déjà consulté plusieurs forums mais je ne suis pas convaincue par les réponses proposées…
Je ne connais rien en macros et me débrouille avec les ‘validités’ de listes et les formules.
Dans la pièce jointe se trouve mon projet (et mes problèmes haha).
Tout est noté : en bleu les explications de “qu’est-ce que c’est ?” ; en jaune les points sur lesquels je bloque complétement (il y en a 4)…
L’idée étant aussi d’optimiser un peu tout ça donc le mieux c’est aussi d’automatiser le tout !
Sur ce bonne lecture et toute explication est bonne à prendre (mais c’est vrai que les explications + le fichier modifié en conséquence c’est encore mieux), merci d’avance !
Prenez soin de vous ! Help.ods

Bonjour,

Ci-joint une solution pour le point 2, sur la feuille Aléatoire. Voir les commentaires. Attention, à partir de D3, la formule de validité SI(NB.SI(SI($C3:D3=Prenoms_list;"";Prenoms_list);Prenoms_list)<COLONNES($C3:D3);"";Prenoms_list) est matricielle (les formules de validité, si le champ autorisé est une plage de cellules, sont validées en matriciel automatiquement). La démarche consiste à fixer les prénoms de gauche à droite (de C3 à L3), la liste déroulante de prénoms proposés s’adaptant au fur et à mesure. Si on revient en arrière et qu’on choisit un prénom déjà mis plus loin, un formatage conditionnel en rouge signale l’erreur. Les prénoms non fixés seront choisis automatiquement au hasard parmi la liste restante. En ligne 7, en bleu, le choix final. Sou_Pt2_Piou.ods

Explications détaillées : Sou_Pt2_Piou2.ods

Cordialement,

Bonjours,

Merci de votre réponse !
J’ai donc tenté d’implémenter votre travail dans le projet mais la condition n’est pas respectée et je ne comprends pas pourquoi. De plus, en étudiant la formule :

SI(NB.SI(SI($C3:E3=Prenoms_list;"";Prenoms_list);Prenoms_list)<COLONNES($C3:E3);"";Prenoms_list)

je me suis plus spécialement penchée sur le SI(plage=liste;si;alors) et je ne parviens pas à trouver le problème d’étudier une plage à plusieurs entrées et colonnes (cf pièce-jointe dans la feuille “Aléatoire”), si vous aviez la gentillesse de m’aider (ou quelqu’un d’autre), ce serait vraiment aimable.
Help_2.ods

Cordialement.

Bonjour,

Tu as raison de te pencher sur SI(plage=liste;si;alors), tout est dans plage=liste… les explications dans le fichier Sou_Pt2_Piou2 ajouté à ma réponse.

Cordialement,

Bonjour,

Merci encore pour votre réponse. Seulement je ne comprends toujours pas comment Calc réagit face à cette fameuse ligne SI() lorsqu’on a un tableau à double entrées… pourquoi il n’arrive pas à gérer ce type de situations ? J’ai écrit les étapes de ‘comment j’imagine que Calc comprend les choses et les traite’ ci-joint … Autrement, j’ai tout à fait saisi le sens et l’intérêt du code dans la formule (mais merci pour l’explication quand même); je ne saisis ‘juste’ pas pourquoi Calc ne sait pas faire cela à 2 entrées…

Help_3.ods

Cordialement,

Bonjour,

Je ne pense pas que tu aies compris la formule. J’ai pourtant fourni l’explication dans le précédent fichier :
« Parce que ton égalité ($B$13:$C$16)=Prenoms_list ne peut être interprétée correctement par Calc, étant en 3 dimensions : une plage 2x4 croisée avec une plage 1x10.»

$B$13:$C$16 est une plage 2D !
La plage à comparer avec Prénoms_list (Prenom-list est un vecteur colonne) doit être soit un vecteur-colonne de même dimension (ce qui n’est pas le cas ici), soit un vecteur ligne de dimension quelconque (ce qui est le cas ici). En effet $C3:D3 à deux cellules en validité de D3, devient $C3:E3 à 3 cellules en validité de E3, $C3:F3 à 4 cellules en validité de F3, etc. Mais de toute façon, ce n’est que la ligne 3 !
C’est un peu comme si tu faisais un tableau pour avoir la distance d’une commune à un hôpital, il ne te viendrait pas à l’idée de mettre deux communes sur une même ligne, c’est pourtant ce que tu fais en B13:C16 de ton fichier !!

Cordialement,

Bonsoir,
J’ai pourtant bien regardé votre document mais peut-être me suis-je mal exprimée. Au final la réponse à ma question est clairement ‘Calc ne prend pas en compte ce type de données donc c’est impossible avec cette méthhode’ mais du coup je suppose qu’il existe un moyen de la contourner… j’y réfléchirai !
Bonne fin de journée à vous.
Cordialement,