{"id":5570,"date":"2026-05-24T08:37:39","date_gmt":"2026-05-24T06:37:39","guid":{"rendered":"https:\/\/www.bras-de-fer.fr\/blog\/calcul-besoins-proteines\/"},"modified":"2026-05-24T08:37:39","modified_gmt":"2026-05-24T06:37:39","slug":"calcul-besoins-proteines","status":"publish","type":"post","link":"https:\/\/www.bras-de-fer.fr\/blog\/calcul-besoins-proteines\/","title":{"rendered":"Comment calculer ses besoins en prot\u00e9ines pour une nutrition optimale"},"content":{"rendered":"<p class=\"wp-block-paragraph\"><strong>En bref<\/strong><\/p>\n\n<ul class=\"wp-block-list\"><li><strong>Calcul simple :<\/strong> utilisez votre poids (ajust\u00e9 si surpoids) \u00d7 la fourchette g\/kg selon votre profil.<\/li><li><strong>R\u00e9partition :<\/strong> 20\u201340 g de prot\u00e9ines toutes les 3\u20134 heures, &gt;2,5 g de leucine par prise pour d\u00e9clencher la synth\u00e8se musculaire.<\/li><li><strong>Plages \u00e0 conna\u00eetre :<\/strong> s\u00e9dentaire 0,83 g\/kg \u2022 sportif force 1,6\u20132,2 g\/kg \u2022 en restriction 1,6\u20132,4 g\/kg.<\/li><li><strong>Sources :<\/strong> combiner c\u00e9r\u00e9ales + l\u00e9gumineuses pour les v\u00e9gans; whey ou \u0153ufs pour la qualit\u00e9 d\u2019acides amin\u00e9s.<\/li><li><strong>Outil pratique :<\/strong> tester un calculateur en ligne pour obtenir vos apports pr\u00e9cis et calories associ\u00e9es.<\/li><\/ul>\n\n<p class=\"wp-block-paragraph\"><strong>Chap\u00f4<\/strong><\/p>\n\n<p class=\"wp-block-paragraph\">Calculer ses besoins en prot\u00e9ines rel\u00e8ve parfois du casse-t\u00eate : poids, \u00e2ge, objectif (perte de graisse, prise de masse, maintien), qualit\u00e9 des sources, r\u00e9partition dans la journ\u00e9e\u2026 Ce guide pratique transforme ces param\u00e8tres en r\u00e8gles claires et applicables d\u00e8s aujourd\u2019hui. Vous trouverez des m\u00e9thodes de calcul \u00e9tape par \u00e9tape, des exemples chiffr\u00e9s (poids r\u00e9el, poids ajust\u00e9), un tableau r\u00e9capitulatif par profil, des erreurs classiques \u00e0 \u00e9viter et des menus types pour int\u00e9grer facilement la quantit\u00e9 prot\u00e9ique recommand\u00e9e. Le contenu s\u2019appuie sur les recommandations fran\u00e7aises et internationales r\u00e9centes et propose des alternatives pour v\u00e9g\u00e9tariens et seniors. \u00c0 la fin, un outil de calcul int\u00e9gr\u00e9 et des liens utiles permettront de tester vos besoins en moins d\u2019une minute. L\u2019objectif : que vous puissiez planifier vos prot\u00e9ines quotidiennes sans complexit\u00e9, optimiser votre r\u00e9cup\u00e9ration et acc\u00e9l\u00e9rer vos progr\u00e8s en entra\u00eenement, tout en respectant une alimentation \u00e9quilibr\u00e9e et adapt\u00e9e \u00e0 votre sant\u00e9.<\/p>\n\n<h2 class=\"wp-block-heading\">Comprendre les besoins en prot\u00e9ines : r\u00f4le, acides amin\u00e9s et principes cl\u00e9s<\/h2>\n\n<p class=\"wp-block-paragraph\">Les prot\u00e9ines sont des macronutriments d\u00e9di\u00e9s \u00e0 la construction, la r\u00e9paration et le maintien des tissus. Elles sont compos\u00e9es d\u2019acides amin\u00e9s ; neuf d\u2019entre eux sont essentiels et doivent provenir de l\u2019alimentation. La leucine, parmi ces acides amin\u00e9s, d\u00e9clenche la voie mTORC1, moteur de la synth\u00e8se prot\u00e9ique musculaire.<\/p>\n\n<p class=\"wp-block-paragraph\">Plusieurs facteurs modulent vos besoins : <strong>poids corporel<\/strong>, <strong>\u00e2ge<\/strong>, <strong>niveau d\u2019activit\u00e9<\/strong> et <strong>objectif<\/strong>. Les autorit\u00e9s fran\u00e7aises recommandent pour un adulte s\u00e9dentaire <strong>0,83 g\/kg\/jour<\/strong>, tandis que le consensus sportif place l\u2019optimum pour la musculation autour de <strong>1,6 g\/kg\/jour<\/strong>, avec un plafond d\u2019int\u00e9r\u00eat pratique vers <strong>2,2 g\/kg\/jour<\/strong>.<\/p>\n\n<p class=\"wp-block-paragraph\">Insight : pour \u00e9viter les erreurs, calculez d\u2019abord votre m\u00e9tabolisme et ajustez le poids utilis\u00e9 (poids r\u00e9el ou poids ajust\u00e9 en cas d\u2019ob\u00e9sit\u00e9).<\/p>\n\n<h2 class=\"wp-block-heading\">Comment calculer vos besoins en prot\u00e9ines : m\u00e9thode pas \u00e0 pas<\/h2>\n\n<p class=\"wp-block-paragraph\">Voici une m\u00e9thode simple, applicable en quelques \u00e9tapes.<\/p>\n\n<ol class=\"wp-block-list\"><li><strong>Choisir le poids de r\u00e9f\u00e9rence<\/strong> : utilisez votre poids r\u00e9el si IMC &lt; 30 ; sinon calculez un poids ajust\u00e9 (poids id\u00e9al ou poids actuel \u00d7 0,85).<\/li><li><strong>S\u00e9lectionner la fourchette g\/kg<\/strong> selon le profil (voir le tableau ci\u2011dessous).<\/li><li><strong>Multiplier<\/strong> : poids de r\u00e9f\u00e9rence \u00d7 g\/kg = <strong>besoins en prot\u00e9ines (g\/jour)<\/strong>.<\/li><li><strong>R\u00e9partir<\/strong> sur 3\u20135 prises par jour (20\u201340 g par prise) avec une source riche en leucine pour chaque repas.<\/li><\/ol>\n\n<p class=\"wp-block-paragraph\">Exemple concret : Antoine, 68 ans, 74 kg, convalescent apr\u00e8s fracture. On vise 1,3 g\/kg \u2192 1,3 \u00d7 74 = <strong>96 g\/jour<\/strong>. R\u00e9partition possible : yaourt grec 15 g, sardines 28 g, 2 \u0153ufs 13 g, poulet 22 g, fromage blanc 8 g = \u224895 g.<\/p>\n\n<p class=\"wp-block-paragraph\">Pour obtenir une estimation rapide en ligne, testez un calculateur fiable pour comparer vos r\u00e9sultats : <a href=\"https:\/\/www.optimumnutrition.com\/fr-fr\/pages\/protein-calculator\" target=\"_blank\" rel=\"noopener\">calculateur Optimum Nutrition<\/a> ou <a href=\"https:\/\/www.topmuscu.fr\/calcul-de-vos-besoins-journaliers-en-proteines\/\" target=\"_blank\" rel=\"noopener\">outil TopMuscu<\/a>.<\/p>\n\n<p class=\"wp-block-paragraph\">Insight : en phase de s\u00e8che, ajoutez 250\u2013500 kcal de d\u00e9ficit progressif mais maintenez les prot\u00e9ines \u00e9lev\u00e9es (1,6\u20132,4 g\/kg) pour pr\u00e9server le muscle.<\/p>\n\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/@tailwindcss\/browser@4\"><\/script>\n\n<!-- Calculateur de besoins en prot\u00e9ines\n     \u00c0 coller tel quel dans votre page (pas de <head> ni <body> complets).\n     Hauteur limit\u00e9e \u2014 s'int\u00e8gre dans la page existante.\n-->\n\n<div id=\"prot\u00e9ine-calculateur\" class=\"max-w-3xl mx-auto p-4 bg-white shadow-md rounded-md text-gray-800\" style=\"max-height:2000px;\">\n  <h2 class=\"text-2xl font-semibold mb-2\">Calculateur de besoins en prot\u00e9ines<\/h2>\n  <p class=\"text-sm text-gray-600 mb-4\">Entrez vos donn\u00e9es pour estimer vos prot\u00e9ines quotidiennes (g\/jour), la r\u00e9partition en 3\u20135 prises et des suggestions d&rsquo;aliments.<\/p>\n\n  <form id=\"form-proteines\" class=\"grid grid-cols-1 md:grid-cols-2 gap-4\" aria-labelledby=\"form-title\">\n    <div>\n      <label for=\"poids\" class=\"block text-sm font-medium\">Poids (kg)<\/label>\n      <input id=\"poids\" name=\"poids\" type=\"number\" min=\"20\" max=\"250\" step=\"0.1\" value=\"70\"\n             class=\"mt-1 block w-full rounded border-gray-300 shadow-sm focus:ring-indigo-500 focus:border-indigo-500\"\n             aria-describedby=\"poids-desc\" required>\n      <p id=\"poids-desc\" class=\"text-xs text-gray-500\">Entrez votre poids en kilogrammes.<\/p>\n    <\/div>\n\n    <div>\n      <label for=\"age\" class=\"block text-sm font-medium\">\u00c2ge (ans)<\/label>\n      <input id=\"age\" name=\"age\" type=\"number\" min=\"12\" max=\"120\" step=\"1\" value=\"30\"\n             class=\"mt-1 block w-full rounded border-gray-300 shadow-sm focus:ring-indigo-500 focus:border-indigo-500\"\n             aria-describedby=\"age-desc\" required>\n      <p id=\"age-desc\" class=\"text-xs text-gray-500\">\u00c2ge pour contextualiser (affecte peu le calcul, mais utile).<\/p>\n    <\/div>\n\n    <div>\n      <label for=\"activite\" class=\"block text-sm font-medium\">Niveau d&rsquo;activit\u00e9<\/label>\n      <select id=\"activite\" name=\"activite\"\n              class=\"mt-1 block w-full rounded border-gray-300 shadow-sm focus:ring-indigo-500 focus:border-indigo-500\"\n              aria-describedby=\"activite-desc\">\n        <option value=\"sedentaire\">S\u00e9dentaire (peu ou pas d&rsquo;activit\u00e9)<\/option>\n        <option value=\"actif\">Actif (ex. activit\u00e9 mod\u00e9r\u00e9e 3-4x\/semaine)<\/option>\n        <option value=\"endurance\">Endurance (courses, cyclisme \u2014 volume cardio \u00e9lev\u00e9)<\/option>\n        <option value=\"force\">Force \/ musculation (entra\u00eenements de r\u00e9sistance)<\/option>\n      <\/select>\n      <p id=\"activite-desc\" class=\"text-xs text-gray-500\">Choisissez le descriptif qui vous correspond le mieux.<\/p>\n    <\/div>\n\n    <div>\n      <label for=\"objectif\" class=\"block text-sm font-medium\">Objectif<\/label>\n      <select id=\"objectif\" name=\"objectif\"\n              class=\"mt-1 block w-full rounded border-gray-300 shadow-sm focus:ring-indigo-500 focus:border-indigo-500\"\n              aria-describedby=\"objectif-desc\">\n        <option value=\"maintien\">Maintien<\/option>\n        <option value=\"seche\">S\u00e8che (d\u00e9ficit calorique \u2014 pr\u00e9server la masse maigre)<\/option>\n        <option value=\"prise\">Prise de masse<\/option>\n      <\/select>\n      <p id=\"objectif-desc\" class=\"text-xs text-gray-500\">Objectif principal pour ajuster la cible prot\u00e9ique.<\/p>\n    <\/div>\n\n    <div class=\"md:col-span-2\">\n      <label class=\"block text-sm font-medium\">Nombre de prises par jour<\/label>\n      <div class=\"mt-2 flex items-center gap-3\" role=\"radiogroup\" aria-label=\"Nombre de prises\">\n        <label class=\"inline-flex items-center\">\n          <input type=\"radio\" name=\"prises\" value=\"3\" checked class=\"form-radio\">\n          <span class=\"ml-2\">3<\/span>\n        <\/label>\n        <label class=\"inline-flex items-center\">\n          <input type=\"radio\" name=\"prises\" value=\"4\" class=\"form-radio\">\n          <span class=\"ml-2\">4<\/span>\n        <\/label>\n        <label class=\"inline-flex items-center\">\n          <input type=\"radio\" name=\"prises\" value=\"5\" class=\"form-radio\">\n          <span class=\"ml-2\">5<\/span>\n        <\/label>\n      <\/div>\n      <p class=\"text-xs text-gray-500 mt-1\">R\u00e9partition pratique recommand\u00e9e (3 \u00e0 5 prises).<\/p>\n    <\/div>\n\n    <div class=\"md:col-span-2 flex gap-2\">\n      <button id=\"btn-calculer\" type=\"button\" class=\"px-4 py-2 bg-indigo-600 text-white rounded hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-indigo-400\">\n        Calculer\n      <\/button>\n      <button id=\"btn-reset\" type=\"reset\" class=\"px-4 py-2 bg-gray-200 text-gray-800 rounded hover:bg-gray-300\">\n        R\u00e9initialiser\n      <\/button>\n      <button id=\"btn-avoir\" type=\"button\" class=\"ml-auto text-sm text-indigo-600 underline\" title=\"Explications\">\n        D\u00e9tails &#038; formule\n      <\/button>\n    <\/div>\n  <\/form>\n\n  <div id=\"resultats\" class=\"mt-4 grid grid-cols-1 md:grid-cols-2 gap-4\" aria-live=\"polite\">\n    <div class=\"p-4 bg-gray-50 rounded\">\n      <h3 class=\"font-semibold\">R\u00e9sultat<\/h3>\n      <p id=\"r\u00e9sum\u00e9\" class=\"mt-2 text-sm text-gray-700\">Remplissez le formulaire et cliquez sur <strong>Calculer<\/strong>.<\/p>\n      <ul id=\"r\u00e9sum\u00e9-list\" class=\"mt-2 text-sm text-gray-700\"><\/ul>\n    <\/div>\n\n    <div class=\"p-4 bg-gray-50 rounded\">\n      <h3 class=\"font-semibold\">Suggestions alimentaires<\/h3>\n      <p class=\"mt-2 text-sm text-gray-700\">Portions approximatives pour atteindre la cible prot\u00e9ique (exemples par jour).<\/p>\n      <ul id=\"suggestions\" class=\"mt-2 text-sm text-gray-700 space-y-2\"><\/ul>\n    <\/div>\n  <\/div>\n\n  <details class=\"mt-4 text-sm text-gray-600\">\n    <summary class=\"cursor-pointer\">Notes &#038; pr\u00e9cisions<\/summary>\n    <ul class=\"mt-2 list-disc ml-5\">\n      <li>Les r\u00e9sultats sont estimations g\u00e9n\u00e9rales et ne remplacent pas un avis professionnel de di\u00e9t\u00e9ticien.<\/li>\n      <li>Les portions d&rsquo;aliments sont approximatives et bas\u00e9es sur teneur moyenne en prot\u00e9ines (par 100 g).<\/li>\n      <li>Adapt\u00e9 pour adultes; ajuster selon besoins sp\u00e9cifiques (grossesse, pathologies&#8230;).<\/li>\n    <\/ul>\n  <\/details>\n<\/div>\n\n<script>\n\/*\n  Script du calculateur (enti\u00e8rement comment\u00e9).\n  - Fran\u00e7ais partout.\n  - Pas d'API externe n\u00e9cessaire -> fonctionnement local et rapide.\n  - Si vous souhaitez connecter une base d'aliments en ligne, utilisez une API publique gratuite (ex. OpenFoodFacts).\n    Exemple d'API publique (optionnel) :\n      URL: https:\/\/world.openfoodfacts.org\/api\/v0\/product\/[barcode].json\n      Exemple de r\u00e9ponse (JSON abr\u00e9g\u00e9) :\n      {\n        \"status\": 1,\n        \"product\": {\n          \"product_name\": \"Yaourt nature\",\n          \"nutriments\": {\n            \"proteins_100g\": 3.5\n          }\n        }\n      }\n    Note: Nous n'appelons pas cette API dans ce widget pour respecter la performance et l'absence de d\u00e9pendances.\n*\/\n\n\/* Cha\u00eenes et param\u00e8tres (i18n facile \u00e0 \u00e9diter) *\/\nconst STR = {\n  titre: \"Calculateur de besoins en prot\u00e9ines\",\n  msg_remplir: \"Remplissez le formulaire et cliquez sur Calculer.\",\n  unit\u00e9: \"g\/jour\",\n  par_prises: \"par prise\",\n  fourchette: \"Fourchette recommand\u00e9e\",\n  cible: \"Cible estim\u00e9e\",\n  repartition: \"R\u00e9partition\",\n  portions: \"Portions sugg\u00e9r\u00e9es (approximatives)\"\n};\n\n\/* Param\u00e8tres et tables utilis\u00e9es pour le calcul\n   - baseActivity = valeur en g\/kg pour chaque niveau d'activit\u00e9\n   - goalExtra = ajout (g\/kg) selon objectif\n   Ces valeurs sont bas\u00e9es sur recommandations g\u00e9n\u00e9rales (litt\u00e9rature sportive & di\u00e9t\u00e9tique).\n*\/\nconst baseActivity = {\n  sedentaire: 0.8,  \/\/ s\u00e9dentaire : 0.8 g\/kg\n  actif: 1.2,       \/\/ actif : 1.2 g\/kg\n  endurance: 1.4,   \/\/ endurance : 1.4 g\/kg\n  force: 1.6        \/\/ force : 1.6 g\/kg\n};\n\nconst goalExtra = {\n  maintien: 0.0,    \/\/ maintien : aucune modification\n  seche: 0.3,       \/\/ s\u00e8che : augmenter pour pr\u00e9server la masse maigre\n  prise: 0.4        \/\/ prise de masse : plus \u00e9lev\u00e9 pour construire\n};\n\n\/* Liste d'aliments avec prot\u00e9ines pour 100 g (valeurs approximatives)\n   On fournira des suggestions de portions pour atteindre la cible.\n   Facilement \u00e9ditable \/ extensible.\n*\/\nconst aliments = [\n  {nom: \"Filet de poulet (cuit)\", prot100: 31},\n  {nom: \"Saumon (cuit)\", prot100: 25},\n  {nom: \"Tofu ferme\", prot100: 17},\n  {nom: \"Fromage blanc 0% (ou yaourt grec)\", prot100: 10},\n  {nom: \"\u0152uf (1 \u0153uf \u2248 50g)\", prot100: 13, unites: {qteParUnite:50, texteUnite: \"\u0153uf(s)\"}},\n  {nom: \"Lentilles cuites\", prot100: 9},\n  {nom: \"Quinoa cuit\", prot100: 4.4},\n  {nom: \"Pois chiches cuits\", prot100: 8.9},\n  {nom: \"Fromage (type cheddar)\", prot100: 25},\n  {nom: \"B\u0153uf maigre (cuit)\", prot100: 26}\n];\n\n\/* Helper: r\u00e9cup\u00e8re valeurs du formulaire *\/\nfunction getFormValues() {\n  const poids = parseFloat(document.getElementById('poids').value) || 0;\n  const age = parseInt(document.getElementById('age').value) || 0;\n  const activite = document.getElementById('activite').value;\n  const objectif = document.getElementById('objectif').value;\n  const prises = document.querySelector('input[name=\"prises\"]:checked').value;\n  return {poids, age, activite, objectif, prises: parseInt(prises, 10)};\n}\n\n\/* Calcul principal\n   Strategy:\n   - base = baseActivity[activite] (g\/kg)\n   - extra = goalExtra[objectif] (g\/kg)\n   - cible_gkg = base + extra\n   - total_proteines = poids * cible_gkg\n   - on fournit \u00e9galement une fourchette +\/-10% pour flexibilit\u00e9\n*\/\nfunction calculerProteines(poids, activite, objectif) {\n  const base = baseActivity[activite] ?? baseActivity['actif'];\n  const extra = goalExtra[objectif] ?? 0;\n  let cible_gkg = base + extra;\n\n  \/\/ bornes raisonnables\n  if (cible_gkg < 0.8) cible_gkg = 0.8;\n  if (cible_gkg > 2.5) cible_gkg = 2.5;\n\n  const total = poids * cible_gkg;\n  const fourchette = {\n    min: Math.max(0, total * 0.9),\n    max: total * 1.1\n  };\n  return {cible_gkg: round(cible_gkg, 2), total: round(total, 1), fourchette: {min: round(fourchette.min, 1), max: round(fourchette.max, 1)}};\n}\n\n\/* G\u00e9n\u00e8re suggestions alimentaires simples\n   - On propose 3 options tri\u00e9es par densit\u00e9 prot\u00e9ique pour obtenir la cible.\n   - Pour chaque aliment, on calcule la quantit\u00e9 n\u00e9cessaire (en g) pour atteindre une fraction de la cible.\n   - On propose combinaisons simples: option 1 = 60% avec un aliment dense ; option 2 = 50\/50 ; option 3 = v\u00e9g\u00e9tarienne (lentilles+tofu).\n*\/\nfunction genererSuggestions(totalProteines) {\n  \/\/ trier aliments par prot100 d\u00e9croissante\n  const tri = [...aliments].sort((a,b) => (b.prot100||0) - (a.prot100||0));\n\n  \/\/ option 1 : aliment le plus prot\u00e9in\u00e9 (100% de la cible)\n  const opt1Alim = tri[0];\n  const qte1 = qtePourProt(opt1Alim, totalProteines);\n\n  \/\/ option 2 : combinaison 50\/50 des deux premiers\n  const opt2a = tri[0], opt2b = tri[1] || tri[0];\n  const moiti\u00e9 = totalProteines \/ 2;\n  const q2a = qtePourProt(opt2a, moiti\u00e9);\n  const q2b = qtePourProt(opt2b, moiti\u00e9);\n\n  \/\/ option 3 : v\u00e9g\u00e9tarienne : lentilles + tofu (ou deux alternatives)\n  const lentilles = aliments.find(a => a.nom.toLowerCase().includes('lentilles')) || tri[tri.length-1];\n  const tofu = aliments.find(a => a.nom.toLowerCase().includes('tofu')) || tri[Math.floor(tri.length\/2)];\n  const moiti\u00e9V = totalProteines \/ 2;\n  const q3l = qtePourProt(lentilles, moiti\u00e9V);\n  const q3t = qtePourProt(tofu, moiti\u00e9V);\n\n  \/\/ option 4 : r\u00e9partition par prises (exemple)\n  \/\/ retournons un tableau d'options lisibles\n  return [\n    {\n      titre: `Option simple (principal) \u2014 ${opt1Alim.nom}`,\n      lignes: [`${qte1.texte} de ${opt1Alim.nom} (~${qte1.grammes} g)`]\n    },\n    {\n      titre: `Option mixte \u2014 ${opt2a.nom} + ${opt2b.nom}`,\n      lignes: [`${q2a.texte} de ${opt2a.nom} (~${q2a.grammes} g)`, `${q2b.texte} de ${opt2b.nom} (~${q2b.grammes} g)`]\n    },\n    {\n      titre: `Option v\u00e9g\u00e9tarienne \u2014 ${lentilles.nom} + ${tofu.nom}`,\n      lignes: [`${q3l.texte} de ${lentilles.nom} (~${q3l.grammes} g)`, `${q3t.texte} de ${tofu.nom} (~${q3t.grammes} g)`]\n    }\n  ];\n}\n\n\/* Calcule la quantit\u00e9 (g) n\u00e9cessaire d'un aliment pour obtenir `prot` grammes de prot\u00e9ines.\n   Si l'aliment a 'unites' (ex. \u0153uf), on propose aussi le nombre d'unit\u00e9s arrondi.\n*\/\nfunction qtePourProt(alim, prot) {\n  const prot100 = alim.prot100 || 0;\n  \/\/ grammes n\u00e9cessaires = prot \/ (prot100\/100)\n  const grammes = prot100 > 0 ? Math.round((prot \/ prot100) * 100) : null;\n  let texte = grammes ? `${grammes} g` : \"Indisponible\";\n  if (alim.unites && grammes) {\n    const qUnit = Math.round(grammes \/ alim.unites.qteParUnite);\n    texte = `${qUnit} ${alim.unites.texteUnite} (\u2248 ${grammes} g)`;\n  }\n  return {grammes: grammes || 0, texte};\n}\n\n\/* Arrondir pratique *\/\nfunction round(nb, dec=0) {\n  const p = Math.pow(10, dec);\n  return Math.round(nb * p) \/ p;\n}\n\n\/* Mettre \u00e0 jour l'interface avec les r\u00e9sultats *\/\nfunction afficherResultats() {\n  const vals = getFormValues();\n  if (!vals.poids || vals.poids <= 0) {\n    document.getElementById('r\u00e9sum\u00e9').textContent = \"Poids invalide. Indiquez votre poids en kg.\";\n    document.getElementById('r\u00e9sum\u00e9-list').innerHTML = \"\";\n    document.getElementById('suggestions').innerHTML = \"\";\n    return;\n  }\n\n  const calc = calculerProteines(vals.poids, vals.activite, vals.objectif);\n  const perPrise = round(calc.total \/ vals.prises, 1);\n\n  \/\/ r\u00e9sum\u00e9 textuel\n  const r\u00e9sum\u00e9Node = document.getElementById('r\u00e9sum\u00e9');\n  r\u00e9sum\u00e9Node.innerHTML = `<strong>${calc.total} ${STR.unit\u00e9}<\/strong> (\u2248 ${calc.cible_gkg} g\/kg\/jour)`;\n  const ul = document.getElementById('r\u00e9sum\u00e9-list');\n  ul.innerHTML = \"\";\n  const li1 = document.createElement('li');\n  li1.textContent = `${STR.fourchette} : ${calc.fourchette.min} \u2014 ${calc.fourchette.max} ${STR.unit\u00e9}`;\n  const li2 = document.createElement('li');\n  li2.textContent = `${STR.repartition} : ${vals.prises} prises \u2192 ~${perPrise} ${STR.unit\u00e9} ${STR.par_prises}`;\n  const li3 = document.createElement('li');\n  li3.textContent = `${STR.cible} : ${calc.total} ${STR.unit\u00e9} (arrondi)`;\n\n  ul.appendChild(li1);\n  ul.appendChild(li2);\n  ul.appendChild(li3);\n\n  \/\/ suggestions d'aliments\n  const suggestions = genererSuggestions(calc.total);\n  const sugNode = document.getElementById('suggestions');\n  sugNode.innerHTML = \"\";\n  suggestions.forEach(opt => {\n    const titre = document.createElement('div');\n    titre.className = \"font-medium\";\n    titre.textContent = opt.titre;\n    const list = document.createElement('ul');\n    list.className = \"ml-4 list-disc text-sm\";\n    opt.lignes.forEach(l => {\n      const li = document.createElement('li');\n      li.textContent = l;\n      list.appendChild(li);\n    });\n    const cont = document.createElement('div');\n    cont.appendChild(titre);\n    cont.appendChild(list);\n    sugNode.appendChild(cont);\n  });\n\n  \/\/ Focus accessible sur le r\u00e9sum\u00e9\n  r\u00e9sum\u00e9Node.setAttribute('tabindex', '-1');\n  r\u00e9sum\u00e9Node.focus();\n}\n\n\/* Debounce simple pour performance *\/\nfunction debounce(fn, delay=250) {\n  let t;\n  return function(...args) {\n    clearTimeout(t);\n    t = setTimeout(() => fn.apply(this, args), delay);\n  };\n}\n\n\/* \u00c9v\u00e9nements *\/\ndocument.getElementById('btn-calculer').addEventListener('click', afficherResultats);\ndocument.getElementById('btn-reset').addEventListener('click', () => {\n  \/\/ quelques valeurs par d\u00e9faut apr\u00e8s reset\n  setTimeout(() => {\n    document.getElementById('poids').value = 70;\n    document.getElementById('age').value = 30;\n    document.getElementById('activite').value = 'actif';\n    document.getElementById('objectif').value = 'maintien';\n    document.querySelector('input[name=\"prises\"][value=\"3\"]').checked = true;\n    document.getElementById('r\u00e9sum\u00e9').textContent = STR.msg_remplir;\n    document.getElementById('r\u00e9sum\u00e9-list').innerHTML = \"\";\n    document.getElementById('suggestions').innerHTML = \"\";\n  }, 50);\n});\n\ndocument.getElementById('btn-avoir').addEventListener('click', () => {\n  alert(\n    \"Formule utilis\u00e9e (simplifi\u00e9e) :n\" +\n    \"Prot\u00e9ines (g\/j) = poids (kg) \u00d7 (base activit\u00e9 en g\/kg + ajustement selon objectif)nn\" +\n    \"Bases recommand\u00e9es (ex.) : s\u00e9dentaire 0.8, actif 1.2, endurance 1.4, force 1.6.n\" +\n    \"Ajustements : s\u00e8che +0.3 g\/kg, prise de masse +0.4 g\/kg.nn\" +\n    \"R\u00e9sultats = estimation g\u00e9n\u00e9rale.\"\n  );\n});\n\n\/* Inputs recalculent automatiquement (debounced) pour UX *\/\nconst inputs = Array.from(document.querySelectorAll('#form-proteines input, #form-proteines select'));\ninputs.forEach(el => {\n  el.addEventListener('input', debounce(() => {\n    \/\/ ne recalculer que si le formulaire contient des valeurs plausibles\n    const poids = parseFloat(document.getElementById('poids').value) || 0;\n    if (poids > 20) {\n      afficherResultats();\n    }\n  }, 350));\n});\n\n\/* Calcul initial *\/\ndocument.addEventListener('DOMContentLoaded', () => {\n  \/\/ affichage par d\u00e9faut\n  document.getElementById('r\u00e9sum\u00e9').textContent = STR.msg_remplir;\n});\n<\/script>\n\n<h2 class=\"wp-block-heading\">R\u00e9partition et timing des prot\u00e9ines pour optimiser la synth\u00e8se musculaire<\/h2>\n\n<p class=\"wp-block-paragraph\">La quantit\u00e9 totale compte, mais la r\u00e9partition fait la diff\u00e9rence. La recherche montre qu\u2019un apport r\u00e9gulier toutes les 3\u20134 heures favorise la synth\u00e8se prot\u00e9ique. Chaque prise doit id\u00e9alement contenir <strong>20\u201340 g de prot\u00e9ines<\/strong> et au moins <strong>2,5\u20133 g de leucine<\/strong> pour d\u00e9clencher la MPS.<\/p>\n\n<p class=\"wp-block-paragraph\">Exemple de matin\u00e9e pour un sportif : petit\u2011d\u00e9jeuner 30 g prot\u00e9ines (fromage blanc + \u0153ufs), collation post\u2011s\u00e9ance 25\u201330 g (shaker whey), d\u00e9jeuner 35 g (poisson + quinoa). Finissez la journ\u00e9e avec une source lente (cas\u00e9ine ou fromage blanc) si r\u00e9cup\u00e9ration nocturne n\u00e9cessaire.<\/p>\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Profil<\/th>\n<th>Besoins (g\/kg\/jour)<\/th>\n<th>Pour 70 kg (g\/jour)<\/th>\n<th>Source<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Adulte s\u00e9dentaire<\/td>\n<td>0,83<\/td>\n<td><strong>58 g<\/strong><\/td>\n<td>ANSES 2016<\/td>\n<\/tr>\n<tr>\n<td>Actif mod\u00e9r\u00e9<\/td>\n<td>1,2\u20131,4<\/td>\n<td>84\u201398<\/td>\n<td>OMS \/ FAO<\/td>\n<\/tr>\n<tr>\n<td>Sportif force \/ musculation<\/td>\n<td>1,6\u20132,2<\/td>\n<td>112\u2013154<\/td>\n<td>Morton 2018 \/ ISSN<\/td>\n<\/tr>\n<tr>\n<td>Personne \u00e2g\u00e9e &gt;65 ans<\/td>\n<td>1,0\u20131,2<\/td>\n<td>70\u201384<\/td>\n<td>PROT-AGE \/ ANSES<\/td>\n<\/tr>\n<tr>\n<td>Restriction calorique (s\u00e8che)<\/td>\n<td>1,6\u20132,4<\/td>\n<td>112\u2013168<\/td>\n<td>Helms 2014<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n<p class=\"wp-block-paragraph\">Insight : r\u00e9partir = maintenir l\u2019anabolisme tout au long de la journ\u00e9e ; \u00e9vitez de concentrer la majorit\u00e9 des prot\u00e9ines sur un seul repas.<\/p>\n\n<h2 class=\"wp-block-heading\">Erreurs fr\u00e9quentes et profils sp\u00e9cifiques : seniors, v\u00e9gans, personnes en surpoids<\/h2>\n\n<p class=\"wp-block-paragraph\">Plusieurs erreurs reviennent souvent :<\/p>\n\n<ul class=\"wp-block-list\"><li>Utiliser le poids total sans ajustement chez une personne ob\u00e8se \u2014 corrigez avec le poids id\u00e9al ou poids actuel \u00d7 <strong>0,85<\/strong>.<\/li><li>Penser que toutes les prot\u00e9ines se valent \u2014 qualit\u00e9 et DIAAS comptent (soja \u2248 0,90, pois \u2248 0,82 vs \u0153uf \u2248 1,13).<\/li><li>R\u00e9partition in\u00e9gale : trop peu au petit\u2011d\u00e9jeuner, trop au d\u00eener.<\/li><li>Consommer un exc\u00e8s chronique (&gt;2,5 g\/kg\/j) sans suivi ; cela peut sursolliciter les reins et demande une hydratation accrue.<\/li><\/ul>\n\n<p class=\"wp-block-paragraph\">Sp\u00e9cificit\u00e9s :<\/p>\n\n<ul class=\"wp-block-list\"><li><strong>Seniors :<\/strong> viser 1,0\u20131,2 g\/kg\/j (voire 1,2\u20131,5 g\/kg en maladie aigu\u00eb) et r\u00e9partir sur 3 repas avec 25\u201330 g par prise.<\/li><li><strong>V\u00e9gans :<\/strong> combiner l\u00e9gumineuses + c\u00e9r\u00e9ales sur la journ\u00e9e; viser 1,8\u20132,0 g\/kg\/j pour compenser la digestibilit\u00e9.<\/li><li><strong>Perte de poids :<\/strong> maintenir 1,6\u20132,4 g\/kg\/j pour pr\u00e9server la masse maigre lors d\u2019un d\u00e9ficit calorique.<\/li><\/ul>\n\n<p class=\"wp-block-paragraph\">Pour approfondir les strat\u00e9gies v\u00e9g\u00e9tales, consultez des ressources pratiques : <a href=\"https:\/\/www.bras-de-fer.fr\/blog\/proteines-vegetales-sport\/\">prot\u00e9ines v\u00e9g\u00e9tales et sport<\/a> et des tableaux de valeurs sur <a href=\"https:\/\/cuisine-saine.fr\/vie-saine\/combien-de-proteines-par-jour\/\" target=\"_blank\" rel=\"noopener\">combien de prot\u00e9ines par jour<\/a>.<\/p>\n\n<p class=\"wp-block-paragraph\">Insight : adaptez la strat\u00e9gie au profil, pas l\u2019inverse ; la nuance change l\u2019efficacit\u00e9.<\/p>\n\n<h2 class=\"wp-block-heading\">Programme pratique selon l\u2019objectif : exemples chiffr\u00e9s sur 1 semaine<\/h2>\n\n<p class=\"wp-block-paragraph\">Voici des mod\u00e8les simples \u00e0 adapter.<\/p>\n\n<ul class=\"wp-block-list\"><li><strong>Maintien, activit\u00e9 l\u00e9g\u00e8re (70 kg)<\/strong> : 0,83 g\/kg \u2192 \u224858 g\/j. Exemple : yaourt 15 g, d\u00e9jeuner 20 g, d\u00eener 23 g.<\/li><li><strong>Prise de masse, force (80 kg)<\/strong> : 1,8 g\/kg \u2192 \u2248144 g\/j. Exemple : petit\u2011d\u00e9jeuner 35 g, collation 25 g, d\u00e9jeuner 40 g, collation 20 g, d\u00eener 24 g.<\/li><li><strong>S\u00e8che contr\u00f4l\u00e9e (75 kg)<\/strong> : 2,0 g\/kg \u2192 150 g\/j avec d\u00e9ficit calorique mod\u00e9r\u00e9 (-250 kcal\/j), entra\u00eenement r\u00e9sistance 3\u00d7\/semaine.<\/li><\/ul>\n\n<p class=\"wp-block-paragraph\">Exemples d\u2019aliments pour atteindre 30 g de prot\u00e9ines :<\/p>\n\n<ul class=\"wp-block-list\"><li>150 g de poulet grill\u00e9 (~30 g)<\/li><li>200 g de yaourt grec (~20 g) + 30 g d\u2019amandes (~6 g)<\/li><li>1 shaker whey (30 g prot\u00e9ines par portion selon produit)<\/li><li>200 g de tofu ferme (~24\u201328 g)<\/li><\/ul>\n\n<p class=\"wp-block-paragraph\">Les compl\u00e9ments peuvent \u00eatre utiles pour la praticit\u00e9 : whey pour la qualit\u00e9 et le ratio co\u00fbt\/prot\u00e9ine, prot\u00e9ines v\u00e9g\u00e9tales pour les v\u00e9gans. Un guide complet sur l&rsquo;utilisation des compl\u00e9ments est disponible ici : <a href=\"https:\/\/www.bras-de-fer.fr\/blog\/les-complements-proteines\/\">les compl\u00e9ments prot\u00e9ines<\/a>.<\/p>\n\n<p class=\"wp-block-paragraph\">Insight : planifiez vos repas en partant du total journalier, puis r\u00e9partissez en portions pratiques que vous pouvez r\u00e9p\u00e9ter chaque semaine.<\/p>\n\n<h2 class=\"wp-block-heading\">Passez \u00e0 l\u2019action : calcul rapide et premiers pas<\/h2>\n\n<p class=\"wp-block-paragraph\">Calculez maintenant votre apport cible en suivant ces \u00e9tapes :<\/p>\n\n<ol class=\"wp-block-list\"><li>Choisissez le poids de r\u00e9f\u00e9rence (r\u00e9el ou ajust\u00e9).<\/li><li>S\u00e9lectionnez la fourchette g\/kg selon votre objectif (r\u00e9f\u00e9rez-vous au tableau ci\u2011dessus).<\/li><li>Multipliez et r\u00e9partissez en 3\u20135 prises de 20\u201340 g.<\/li><\/ol>\n\n<p class=\"wp-block-paragraph\">Pour comparer plusieurs m\u00e9thodes et obtenir une estimation d\u00e9taill\u00e9e (calories, glucides, lipides), testez un calculateur complet : <a href=\"https:\/\/macalculatriceenligne.com\/sante\/calcul-besoins-proteines-quotidiens\/\" target=\"_blank\" rel=\"noopener\">calculateur en ligne<\/a> ou la calculatrice Decathlon <a href=\"https:\/\/protein-calculator.decathlon.net\/\" target=\"_blank\" rel=\"noopener\">Decathlon &#8211; Calculateur de Prot\u00e9ines<\/a>.<\/p>\n\n<p class=\"wp-block-paragraph\">Insight final : commencez par une estimation r\u00e9aliste, suivez vos apports 1\u20132 semaines, puis ajustez selon la performance et la r\u00e9cup\u00e9ration.<\/p>\n\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Comment calculer mes protu00e9ines si je suis en surpoids ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Utilisez un poids ajustu00e9 : poids idu00e9al ou poids actuel u00d7 0,85. Cela u00e9vite des apports excessifs qui ne ciblent pas la masse maigre. Pour un suivi pru00e9cis, consultez un diu00e9tu00e9ticien.\"}},{\"@type\":\"Question\",\"name\":\"Les protu00e9ines en poudre sont-elles nu00e9cessaires ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Non indispensables si votre alimentation couvre lu2019apport cible, mais pratiques en cas du2019appu00e9tit ru00e9duit, contrainte budgu00e9taire ou pour un apport post-entrau00eenement rapide.\"}},{\"@type\":\"Question\",\"name\":\"Quelle quantitu00e9 par prise pour activer la synthu00e8se musculaire ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Visez 20u201340 g de protu00e9ines par repas, avec au moins 2,5u20133 g de leucine (souvent atteint avec 25u201330 g de protu00e9ines de haute qualitu00e9).\"}},{\"@type\":\"Question\",\"name\":\"Que faire si je suis vegan ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Combinez lu00e9gumineuses et cu00e9ru00e9ales sur la journu00e9e pour couvrir le profil du2019acides aminu00e9s et augmentez lu00e9gu00e8rement la cible (u22481,8u20132,0 g\/kg\/j) pour compenser la digestibilitu00e9.\"}}]}\n<\/script>\n<h3>Comment calculer mes prot\u00e9ines si je suis en surpoids ?<\/h3>\n<p>Utilisez un poids ajust\u00e9 : poids id\u00e9al ou poids actuel \u00d7 0,85. Cela \u00e9vite des apports excessifs qui ne ciblent pas la masse maigre. Pour un suivi pr\u00e9cis, consultez un di\u00e9t\u00e9ticien.<\/p>\n<h3>Les prot\u00e9ines en poudre sont-elles n\u00e9cessaires ?<\/h3>\n<p>Non indispensables si votre alimentation couvre l\u2019apport cible, mais pratiques en cas d\u2019app\u00e9tit r\u00e9duit, contrainte budg\u00e9taire ou pour un apport post-entra\u00eenement rapide.<\/p>\n<h3>Quelle quantit\u00e9 par prise pour activer la synth\u00e8se musculaire ?<\/h3>\n<p>Visez 20\u201340 g de prot\u00e9ines par repas, avec au moins 2,5\u20133 g de leucine (souvent atteint avec 25\u201330 g de prot\u00e9ines de haute qualit\u00e9).<\/p>\n<h3>Que faire si je suis vegan ?<\/h3>\n<p>Combinez l\u00e9gumineuses et c\u00e9r\u00e9ales sur la journ\u00e9e pour couvrir le profil d\u2019acides amin\u00e9s et augmentez l\u00e9g\u00e8rement la cible (\u22481,8\u20132,0 g\/kg\/j) pour compenser la digestibilit\u00e9.<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>En bref Chap\u00f4 Calculer ses besoins en prot\u00e9ines rel\u00e8ve parfois du casse-t\u00eate : poids, \u00e2ge, objectif (perte de graisse, prise de masse, maintien), qualit\u00e9 des sources, r\u00e9partition dans la journ\u00e9e\u2026 Ce guide pratique transforme ces param\u00e8tres en r\u00e8gles claires et applicables d\u00e8s aujourd\u2019hui. Vous trouverez des m\u00e9thodes de calcul \u00e9tape par \u00e9tape, des exemples chiffr\u00e9s &#8230; <a title=\"Comment calculer ses besoins en prot\u00e9ines pour une nutrition optimale\" class=\"read-more\" href=\"https:\/\/www.bras-de-fer.fr\/blog\/calcul-besoins-proteines\/\" aria-label=\"En savoir plus sur Comment calculer ses besoins en prot\u00e9ines pour une nutrition optimale\">Lire plus<\/a><\/p>\n","protected":false},"author":1,"featured_media":5569,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"class_list":["post-5570","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-nutrition"],"views":0,"_links":{"self":[{"href":"https:\/\/www.bras-de-fer.fr\/blog\/wp-json\/wp\/v2\/posts\/5570","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bras-de-fer.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bras-de-fer.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bras-de-fer.fr\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bras-de-fer.fr\/blog\/wp-json\/wp\/v2\/comments?post=5570"}],"version-history":[{"count":0,"href":"https:\/\/www.bras-de-fer.fr\/blog\/wp-json\/wp\/v2\/posts\/5570\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bras-de-fer.fr\/blog\/wp-json\/wp\/v2\/media\/5569"}],"wp:attachment":[{"href":"https:\/\/www.bras-de-fer.fr\/blog\/wp-json\/wp\/v2\/media?parent=5570"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bras-de-fer.fr\/blog\/wp-json\/wp\/v2\/categories?post=5570"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bras-de-fer.fr\/blog\/wp-json\/wp\/v2\/tags?post=5570"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}