Calculs automatique à partir d'une liste déroulante

Résolu/Fermé
CindySD Messages postés 4 Date d'inscription mardi 9 juin 2020 Statut Membre Dernière intervention 9 juin 2020 - 9 juin 2020 à 12:32
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 - 9 juin 2020 à 17:23
Bonjour à toutes et tous,

Je m'appelle Cindy, je suis diététicienne et je souhaite créer un tableau de calcul automatique des rations caloriques pour mes patients. Pour cela j'ai une liste exhaustive des aliments courants et leurs valeurs nutritionnelles (pour 100 g d'aliment) pour chaque nutriment.

Je souhaite pouvoir choisir dans une liste un aliment (par exemple le pain qui contient 50 g de glucides pour 100 g), ajouter manuellement la quantité dans la colonne suivante (par exemple 200 g) et obtenir les quantités de chaque nutriment pour la quantité d'aliment choisie (dans l'exemple je devrais trouver 100 g dans la colonne glucide).

J'espère être compréhensible.
J'ai regardé beaucoup de tutos et exploré les forums sur les listes déroulantes, en vain. Peut-être pourriez-vous m'aider ?

Belle journée !

7 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 418
Modifié le 9 juin 2020 à 12:59
Bonjour
voyez ici si vous pouvez en tirer quelque chose et revenez si problème
https://mon-partage.fr/f/wst5f8Ib/

à noter qu'il est possible de réduire la formule si dans la base de données, vous pouvez indiquer la quantité à partir de l'unité de quantité que vous utilisez dans l'édition
exemple: quantité pour un gramme en O quand l'édition utilise le gramme pour unité
la formule en C devient alors
=SIERREUR($B3*RECHERCHEV($A3;$M$3:$R$14;3;0);"")
crdlmnt

0
CindySD Messages postés 4 Date d'inscription mardi 9 juin 2020 Statut Membre Dernière intervention 9 juin 2020
9 juin 2020 à 13:43
Bonjour,

Merci beaucoup pour cette réponse rapide !
J'ai tenté d'entrer la formule, mais je n'obtiens aucun résultat. J'ai certainement fait une erreur. Je vous joins mon document, peut-être y trouverez-vous davantage de réponses.

Aussi je vais chercher à faire une liste déroulante semi-automatique ... Passionnant ce fameux Excel !
https://mon-partage.fr/f/C2NDs2Ol/
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 418
9 juin 2020 à 14:22
Re
d'une part, votre base de données à partir de BQ, ne comporte pas de colonne indiquant la quantité de base pour les valeurs affichées, mais à priori ces quantités sont données pour 100gr d'après les titres.
d'autre part il faut que la plage de recherche comporte , dans la 1°colonne la colonne de la base qui contient les noms et d'autre part (BQ donc)la plage complète toutes les colonnes à renvoyer, la fin de la formule donnant le range de la colonne dans la plage
En supposant que le tableau de D à BF comporte les mêmes rubriques que de BD à DT aux mêmes endroit

donc si on part en D3 , écrire la formule pour la tirer sur tout le tableau:
=SIERREUR(RECHERCHEV($B3;$BQ$3:$DT$2809;COLONNE(B$1);0)*C3/100;"")
ou plus simplement les limites en lignes n'étant pas utile:

=SIERREUR(RECHERCHEV($B3;$BQ:$DT;COLONNE(B$1);0)*C3/100;"")
COLONNE(B$1) renvoi 2 pour la 2° colonne de la plage à ressortir en D3 et va changer en C$1, donc 3 D$1 donc 4 etc....en tirant vers la droite

pour l'avenir base de la formule:

=RECHERCHEV(valeur cherchée; plage complète; rang de la colonne à ressortir;0)
valeur cherchée: au clavier ou cellule qui la contient
plage: la plage qui contient dans la 1° colonne la valeur cherchée, et qui inclut toutes les colonnes à traiter
rang de la colonne: rang de la colonne dans la plage à ressortir
0 code Excel précisant que la valeur trouvée en 1° colonne doit être exacte et ne pas utiliser d'approximation
(sans ce code , la formule utilise la ligne de la valeur inférieure la plus proche dans un champ classé en ordre croissant)

crdlmnt
0
CindySD Messages postés 4 Date d'inscription mardi 9 juin 2020 Statut Membre Dernière intervention 9 juin 2020
9 juin 2020 à 15:19
Merci, j'ai pris en note la formule. Elle est simple à lire, plus complexe à mettre en place !

J'ai entré la formule telle que vous me l'avez proposé. Je vous remercie pour cet énorme gain de temps.
Lorsque j'étire la formule, les résultats ne sont pas juste. Je vous joins à nouveau mon document avec la formule étirée.
https://mon-partage.fr/f/NdGECrt6/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 418
9 juin 2020 à 15:30
normal, juste une petit coquille dans ma proposition (c'est ma spécialité)
il faut bloquer le C de C3 à la fin de la formule:
=SIERREUR(RECHERCHEV($B3;$BQ:$DT;COLONNE(B$1);0)*$C3/100;"")
sinon il devient D3 etc...
excuses
crdlmnt

0
CindySD Messages postés 4 Date d'inscription mardi 9 juin 2020 Statut Membre Dernière intervention 9 juin 2020
9 juin 2020 à 15:37
Je ne suis pas sûre que vous sachiez à quel point vous m'avez rendu service avec votre aide ! Mes patients et moi-même vous remercions !

Bien à vous Vaucluse ;)
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 418
Modifié le 9 juin 2020 à 17:23
Bof, ce n'était pas grand chose, mais tant mieux si ça vous sert à ce point là
Je passe le sujet en résolu
Bonne route
crdlmnt

0