Figer des calculs

Bonsoir,

Mon tableau en fichier joint sert à calculer les macros de mes futurs repas.

En fonction des aliments choisis dans les listes déroulantes et de leur poids(colonnes AB et DE), il calcule les macros que j'ai besoin d'ajuster (résultats dans les colonnes I à O).

Il manque quelques données à renseigner mais cela fonctionne très bien (merci de me dire si vous constatez une erreur dans mes calculs).

Tout à droite, vous trouverez les lignes récapitulatives de mes choix dans les cellules déroulantes pour les repas du matin de Lundi et Mardi pour commencer (colonnes ST et VW).

Mon problème est le suivant, j'aimerais figer mes calculs dans ces colonnes c'est à dire :

Je fais mes choix d'aliment pour Lundi, donc les résultats changent dans les colonnes ST et VW.

A ce moment là, je veux figer les résultats dans les colonnes ST.

Ensuite, je fais mes choix pour Mardi donc les colonnes ST ne bougent plus et VW bougent.

Puis, je les fige aussi et je continu comme ça jusqu’à Vendredi (colonnes dans encore créées pour ces jours).

Je n'ai rien trouvé dans mes recherches que je puisse transposer dans mon tableau.

Si quelqu'un à une meilleure idée d'organisation je suis à l'écoute.

Le but final étant de pouvoir imprimer sous forme de livret mes repas à la semaine.

Merci d'avance et bonne soirée

39test.xlsx (25.69 Ko)

Bonjour,

Je pense que tu n'as pas encore eu de réponse parce qu'on s'est interrogé sur le sens de ta demande...

Habituellement, ce type de demande vise la mise en place de procédures permettant une composition aisée (de menus dans ton cas) à partir de choix à sélectionner dans des listes... Tu ne fais cependant pas état d'un tel procédé dans ta demande, et effectivement pour réaliser un tel dispositif il faudrait reprendre à peu près complètement l'organisation de tes données...

Dans l'immédiat, figer des valeurs, manuellement, ça se fait très simplement par copie et collage en valeurs de la plage concernée sur elle-même, ce qui a pour effet d'écraser les formules, donc de figer les valeurs.

Tu sélectionnes donc ta plage-menu, Copier, puis Coller Valeurs.

On pourrait sans doute automatiser cette opération en déplaçant le collage vers un autre endroit que tu définirais, ce qui te permettrait au moins de conserver les formules pour le menu suivant....

Cordialement.

Bonsoir et merci de t'intéresser à ma demande et de ta réponse.

C'est vrai que mon tableau s'est construit au fil de mes idées...

Au début, j'avais fait un autre fichier où les formules étaient présentes pour chaque jours. Mais le gros problème de cette méthode est lorsque je voulais ajouter un nouvel aliment, il faut refaire les listes déroulantes et les calculs de chaque jours pour l'inclure.

C'était bien trop lourd comme système, c'est pour cela que j'ai opté pour la solution actuelle.

Simplement, j'aimerais pouvoir figer et défiger des calculs, dont le résultat dépend de variables, à volonté.

Le problème de la fonction "Coller Valeurs" est que la seule solution pour retrouver mes formules est de faire un retour en arrière (a moins que je me trompe).

L'idée de coller les données vers une autre feuille pourrait très bien contourner mon problème.

Voilà comment je vois la chose : une feuille avec 7 tableaux (un par jour) et un bouton "MAJ" au dessus de chaqu'un d'eux.

Comme cela, j'effectue les copie une par une sans interférer sur les autres.

Je vais devoir me former sur les macros...

Mais avant de me lancer là dedans j'aimerais avoir un avis sur la faisabilité de cela svp.

Bonjour,

C'est vrai qu'il ne ressemble à rien ton fichier.

En fait le seul truc de bien c'est le choix des couleurs

Une juxtaposition de tableaux divers sur une même feuille ne donne généralement rien de très pratique mais tu n'as peut-être pas eu trop le choix.

Déjà tu devrais mettre toutes tes listes dans une feuille dédiée et nommer les plages pour faire tes validations par liste. avec =le_nom

Pour ne pas être trop loin du menu j'ai inséré une ligne.

Tu choisis le jour en A1 et tu cliques sur Coller.

Ca te donnera un départ.

Alt+F11 pour voir le code module Feuil1

Garder l'extension .xlsm pour les macro

eric

23test.xlsm (33.82 Ko)

Il me semble qu'Eric te propose un bonne solution d'attente...

Mais il est sûr qu'il te faudra passer par une réorganisation de tes données pour créer une situation qui devienne plus confortable pour l'utilisateur.

Je ne suis pas un "fana" du VBA à tout prix, mais je dois constater que dans ton cas c'est indispensable à un développement du projet. Et cela n'apparaît pas vraiment simple car ton système de composition des repas apparaît comme un système de simulation qui doit permettre d'afficher à tout moment la résultante de tel ou tel menu par rapport aux objectifs.

Et la sélection à partir de listes regroupant les éléments selon les 3 principales catégories n'est sans doute pas suffisant. La piste que je vois, ce sont un plus grand nombre de listes, se chevauchant (que toi seul peut bâtir en fonction des critères que tu utilises spontanément pour tes choix), un nombre de ComboBox correspondant au maximum d'éléments susceptibles d'entrer dans la composition d'un menu, alimentés par des listes (certaines pouvant être initialisées par défaut au démarrage, mais où un dispositif de substitution doit permettre à tout moment de substituer une liste à une autre selon besoin de composition. Le tout assorti d'un dispositif de calcul affichant en permanence la résultante des sélections déjà effectuées.

Intéressant ! (mais je stoppe la réflexion avant de vérifier que je suis pourvu en pillules adéquates... ). Jusqu'ici je n'ai eu besoin d'opérer des mises à jour de listes déroulantes durant l'exécution que de façon marginale (ôter un élément sélectionné, introduire un nouvel élément dans le cas d'ajouts automatiques à partir de la saisie, etc.)

C'est pas mal de boulot pour toi, mais je crois que tu as la chance de pouvoir intéresser assez fortement les "programmeurs". Le pilotage t'incombe ! (Si je peux imaginer des listes orientées glucides, ou lipides, ou composites, ou encore orientées "effort", ou "plats préparés", etc. , je serais incapable de les composer ni d'en établir la diversité qui t'apportera à la fois confort d'utilisation et efficacité...)

Bon courage. Cordialement.

Salut MFerrand,

Je n'ai fait que le minimum syndical pour lui mettre l'eau à la bouche

Sûr qu'il y a des trucs intéressants à faire.

Je te laisse la suite comme tu as l'air motivé et plein d'idées. De toute façon ça va demander un suivi un certain temps je que ne pourrais sans doute pas assumer.

En plus il a oublié la liste Apéro pfff

eric

Salut Eriiic !

Je n'entends pas faire d'appropriation (qui n'est d'ailleurs pas de mise...) mais je suis interessé par le dispositif... moins par le contenu (des repas) Il est vrai que j'ajouterais bien quelques listes de cocktails et apparentés !

Bonsoir et merci pour vos réponses!

Merci pour l'exemple Eric.

En élargissant à B50 la zone de copie dans ton code, je peux copier l'intégralité de mon menu pour chaque jours et surtout les données se mettent à jour seulement lorsque j’appuie sur "Coller".

C'est bien plus pratique que ce j'ai commencé à faire avec l'enregistrement d'une macro...

C'est qui fait que ma demande est résolue.

Je vais bucher les cours VBA proposés par ce site pour comprendre ce que tu as fait et pouvoir m'amuser un peu.

J'ouvrirai un autre post si j'ai vraiment du mal à faire quelque chose.

MFerrand, la mise en place des listes fut un peu chaotique, j'en ai changé plusieurs fois.

Je pense en regrouper quelques unes et assigner 3 couleurs sur les aliments en fonction de leur Indice Glycémique pour savoir à quel moment de la journée je peux les consommer.

Elles évolueront en colonne pour faire apparaitre les nouveaux aliments plus facilement dans les listes déroulantes mais le problème est au niveau de mes calculs.

Je suis obligé de mettre les noms présents dans mes listes déroulantes pour que le calcul fonctionne. J'ai beau mettre le format de mes cellules en "texte", je ne peux pas insérer le nom d'une cellule dans le calcul (par exemple A70 au lieu de Amandes : =(CHOISIR(EQUIV(A27;{"A70s";"Noisette"};0);D70;D71))*B27/100 ne fonctionne pas).

Je vais sérieusement réfléchir à cela car, même si je fais cela avant tout pour moi, mon projet a intéressé beaucoup de mes proches mais une fois que je leur ai expliqué comment ajouter leurs aliments, ce fut un bide total.

En parallèle je vais remplir les données manquantes et faire un calcul liant les doses consommées aux formats des aliments achetées pour établir automatiquement mes listes de courses.

Je compte aussi débuter un nouveau tableau avec des repas variés mais fixe sur 4 semaines.

Cette fois, le poids des aliments sera commandé à la fois par les objectifs des macros (Prot/Glu/Lip) mais aussi en fonction des dispositions que je souhaite respecter (40% de lipides le matin, 25% de glucides matin/midi, etc etc) qui évolueront en fonction de mes objectifs de prise de masse ou de % de masse graisseuse. Et pourquoi pas relier les 2. Tu vois, je prends les mêmes pilules que toi

En tout cas, merci pour votre aide. C'est toujours sympa d'avoir le point de vue et l'expérience d'autres personnes.

Bonsoir,

Ta formule citée... je n'ai pas réussi à déduire ce que tu voulais calculer ?

Un conseil en ce qui concerne la mise au format Texte des cellules : ne jamais l'utiliser, c'est une source d'ennuis, et d'erreurs.

Cordialement.

Bonsoir,

La formule citée est la formule qui permet de calculer les apports en fonction de l'aliment choisi dans la liste déroulante et du poids de l'aliment.

J'ai pris une partie du calcul présent en I15 pour l'exemple : =(CHOISIR(EQUIV(A13;{"Amandes";"Noisettes"};0);D70;D71))*B13/100.

Le problème lorsque je rajoute un aliment dans les listes déroulantes c'est que je dois le rajouter aussi manuellement dans ces formules.

Par exemple, je veux rajouter "Noix", ça donne cela : =(CHOISIR(EQUIV(A13;{"Amandes";"Noisettes";"Noix"};0);D70;D71;(la case où se situe le chiffre de son apport en protéine)))*B13/100.

Ok je note pour le format texte merci.

Il que que tes données soient organisées en table de recherche pour pouvoir y appliquer aisément des formules.

Cordialement.

Rechercher des sujets similaires à "figer calculs"