Emprunter pour investissement locatif : mode d’emploi 2026
{
“@context”: “https://schema.org”,
“@graph”: [
{
“@type”: “Article”,
“@id”: “https://linvestisseur-malin.fr/en-gb/emprunter-pour-investissement-locatif-mode-demploi-2026-4/#article”,
“headline”: “Emprunter pour investissement locatif : mode d’emploi 2026”,
“description”: “Comment emprunter pour un investissement locatif ? Guides, taux 2026, capacitĂ© d’emprunt, prĂȘts sans apport et critĂšres bancaires expliquĂ©s.”,
“datePublished”: “2026-05-25 19:32:19”,
“dateModified”: “2026-05-25 19:32:19”,
“wordCount”: 2427,
“inLanguage”: “fr-FR”,
“mainEntityOfPage”: {
“@type”: “WebPage”,
“@id”: “https://linvestisseur-malin.fr/en-gb/emprunter-pour-investissement-locatif-mode-demploi-2026-4/”
},
“author”: {
“@type”: “Person”,
“@id”: “https://linvestisseur-malin.fr/en-gb/emprunter-pour-investissement-locatif-mode-demploi-2026-4/#author”,
“name”: “Kevin Grillot”,
“jobTitle”: “Expert en Finance Personnelle et Investissement”,
“description”: “Je suis consultant en investissement avec 8 ans d’expĂ©rience dans l’analyse des marchĂ©s financiers et la gestion de patrimoine. SpĂ©cialisĂ© en crypto-actifs, bricks/">immobilier et fintech, je guide les investisseurs français vers des dĂ©cisions Ă©clairĂ©es et rentables.”,
“image”: “https://kevin-grillot.fr/wp-content/uploads/2022/01/31-min-768×1024.jpg”,
“email”: “grillotkevin@gmail.com”,
“sameAs”: [
“https://www.linkedin.com/in/kevin-grillot/”,
“https://kevin-grillot.fr”
]
},
“publisher”: {
“@type”: “Organization”,
“@id”: “https://linvestisseur-malin.fr#org”,
“name”: “L’investisseur Malin”,
“logo”: {
“@type”: “ImageObject”,
“url”: “https://linvestisseur-malin.fr/wp-content/uploads/2021/12/Logo-fond-blanc-1024×1024.jpg”
},
“address”: null,
“email”: “grillotkevin@gmail.com”,
“telephone”: null,
“sameAs”: []
}
},
{
“@type”: “FAQPage”,
“@id”: “https://linvestisseur-malin.fr/en-gb/emprunter-pour-investissement-locatif-mode-demploi-2026-4/#faq”,
“mainEntity”: [
{
“@type”: “Question”,
“name”: “Quel type de prĂȘt pour investissement locatif ?”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “Quatre types principaux : prĂȘt immobilier classique (le plus courant, 10-20 % apport requis), prĂȘt viager hypothĂ©caire (pour 60+ ans, remboursement Ă la vente), rachat de crĂ©dit (si vous avez dĂ©jĂ plusieurs crĂ©dits), portage immobilier (intermĂ©diaire achĂšte, vous louez). Le prĂȘt classique reste le meilleur rapport coĂ»t/flexibilitĂ© pour 80 % des investisseurs.”
}
},
{
“@type”: “Question”,
“name”: “Combien puis-je emprunter pour un investissement locatif ?”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “Cela dĂ©pend de trois critĂšres : taux d’endettement max 35 % de vos revenus nets, apport minimum 10-20 % + frais (6-8 %), reste pour vivre minimum 1 200-1 500 ⏠aprĂšs tous les crĂ©dits. Exemple : salaire 5 000 âŹ, crĂ©dit auto 350 âŹ, apport 50 000 ⏠= enveloppe environ 230-250 000 ⏠empruntables.”
}
},
{
“@type”: “Question”,
“name”: “Quel taux d’endettement pour un investissement locatif ?”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “Le taux d’endettement ne doit pas dĂ©passer 35 % de vos revenus nets mensuels (incluant tous vos crĂ©dits). Formule : (mensualitĂ© immo + autres crĂ©dits + charges) / revenus nets Ă 100 †35 %. Entre 35-40 %, c’est du cas par cas. Au-delĂ de 40 %, refus systĂ©matique.”
}
},
{
“@type”: “Question”,
“name”: “Est-ce une bonne idĂ©e d’emprunter pour investir ?”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “Oui si rendement net > coĂ»t du crĂ©dit (intĂ©rĂȘts + assurance â 3,6-4 % minimum). Non si rendement brut 4 500 ⏠net) et Ă©pargne consĂ©quente non mobilisĂ©e. Les banques majorent alors le taux de +0,25-0,5 %, l’assurance de +0,1-0,2 %, et imposent durĂ©e min 25 ans. CoĂ»te 15-25 % plus cher qu’avec 20 % d’apport. Alternative : constituer une SCI pour meilleure fiscalitĂ©.”
}
},
{
“@type”: “Question”,
“name”: “Faut-il passer par un courtier ou une banque directement ?”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “Les deux. Demandez d’abord Ă votre banque actuelle (avantage client 3+ ans), puis contactez 2-3 courtiers en ligne gratuitement (Pretto, Meilleur Taux). Comparez taux + frais totaux, nĂ©gociez auprĂšs de votre banque. Ăconomies rĂ©alistes : 0,25-0,5 % = 40-80 000 ⏠sur la durĂ©e.”
}
},
{
“@type”: “Question”,
“name”: “Quels coĂ»ts cachĂ©s dois-je prĂ©voir au-delĂ du taux affichĂ© ?”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “Frais de dossier (500-1 500 âŹ), assurance emprunteur (0,35-0,60 % annuel, soit 15-18 000 ⏠sur 25 ans), garantie/hypothĂšque (1,5-3 %), frais notariaux (7-8 % du prix du bien). Total rĂ©el : 40-50 % du capital empruntĂ© sur 25 ans, pas juste les intĂ©rĂȘts affichĂ©s.”
}
},
{
“@type”: “Question”,
“name”: “Puis-je renĂ©gocier mon crĂ©dit immobilier aprĂšs ?”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “Oui, aprĂšs 3 ans minimum (dĂ©lai de rĂ©tractation rĂ©volu). Si taux baisse de 0,5 %, cela reprĂ©sente souvent 200-300 ⏠d’Ă©conomies mensuelles. Frais : 500-1 500 ⏠dossier + notaire max 300 âŹ. RentabilisĂ© en 2-3 mois gĂ©nĂ©ralement. Ă faire absolument en contexte Ă©conomique baissier.”
}
}
]
},
{
“@type”: “BreadcrumbList”,
“@id”: “https://linvestisseur-malin.fr/en-gb/emprunter-pour-investissement-locatif-mode-demploi-2026-4/#breadcrumb”,
“itemListElement”: [
{
“@type”: “ListItem”,
“position”: 1,
“name”: “Accueil”,
“item”: “https://linvestisseur-malin.fr”
},
{
“@type”: “ListItem”,
“position”: 2,
“name”: “Emprunter pour investissement locatif : mode d’emploi 2026”,
“item”: “https://linvestisseur-malin.fr/en-gb/emprunter-pour-investissement-locatif-mode-demploi-2026-4/”
}
]
}
]
}
.otc-article * { box-sizing: border-box; }
.otc-article { font-family: -apple-system, BlinkMacSystemFont, system-ui, sans-serif; line-height: 1.7; color: #1f2937; max-width: 880px; margin: 0 auto; }
.otc-progress { position: fixed; top: 0; left: 0; height: 3px; background: linear-gradient(90deg,#3b82f6,#8b5cf6); width: 0%; z-index: 9999; transition: width 80ms linear; }
.otc-meta-bar { display: flex; gap: 14px; flex-wrap: wrap; color: #64748b; font-size: 14px; padding: 12px 0 18px; border-bottom: 1px solid #e5e7eb; margin-bottom: 22px; }
.otc-meta-bar span { display: inline-flex; align-items: center; gap: 5px; }
.otc-tldr-card { background: linear-gradient(135deg,#f0f9ff,#ecfdf5); border: 1px solid #bae6fd; border-radius: 12px; padding: 20px 24px; margin: 0 0 28px; box-shadow: 0 1px 3px rgba(0,0,0,0.04); }
.otc-tldr-title { font-size: 14px; font-weight: 700; color: #0369a1; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 12px; display: flex; align-items: center; gap: 6px; }
.otc-tldr-bullets { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.otc-tldr-bullets li { padding-left: 26px; position: relative; line-height: 1.5; color: #1e293b; }
.otc-tldr-bullets li::before { content: ‘â’; position: absolute; left: 0; top: 0; width: 18px; height: 18px; background: #10b981; color: white; border-radius: 50%; text-align: center; font-size: 11px; line-height: 18px; font-weight: 700; }
.otc-stats-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin: 0 0 32px; }
.otc-stat-card { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px; padding: 14px 16px; }
.otc-stat-figure { font-size: 28px; font-weight: 700; color: #0f172a; line-height: 1; margin-bottom: 4px; }
.otc-stat-context { font-size: 13px; color: #475569; line-height: 1.4; margin-bottom: 6px; }
.otc-stat-source { font-size: 11px; color: #3b82f6; text-decoration: none; }
.otc-author { display: flex; gap: 16px; padding: 16px; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px; margin: 32px 0; align-items: center; }
.otc-author img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.otc-author .info .name { font-weight: 600; font-size: 16px; }
.otc-author .info .job { color: #64748b; font-size: 13px; margin-top: 2px; }
.otc-author .info .bio { font-size: 13px; color: #475569; margin-top: 6px; line-height: 1.5; }
.otc-author .links { margin-top: 6px; display: flex; gap: 8px; flex-wrap: wrap; }
.otc-author .links a { color: #3b82f6; font-size: 12px; text-decoration: none; }
.otc-faq h2 { margin-top: 40px; }
.otc-faq details { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px; padding: 12px 16px; margin-bottom: 8px; transition: background 0.15s; }
.otc-faq details:hover { background: #f1f5f9; }
.otc-faq details[open] { background: white; box-shadow: 0 1px 3px rgba(0,0,0,0.06); }
.otc-faq summary { cursor: pointer; font-weight: 600; color: #1e293b; padding-right: 24px; position: relative; }
.otc-faq summary::-webkit-details-marker { display: none; }
.otc-faq summary::after { content: ‘+’; position: absolute; right: 0; top: 50%; transform: translateY(-50%); font-size: 22px; color: #3b82f6; transition: transform 0.2s; }
.otc-faq details[open] summary::after { content: ‘â’; }
.otc-faq p { margin: 10px 0 0; color: #475569; line-height: 1.6; }
.otc-yt-embed { aspect-ratio: 16/9; margin: 20px 0; border-radius: 8px; overflow: hidden; background: #000; }
.otc-yt-embed iframe { width: 100%; height: 100%; border: 0; }
.otc-reddit { background: #fffbeb; border-left: 4px solid #f59e0b; padding: 14px 18px; margin: 20px 0; border-radius: 6px; font-size: 14px; }
.otc-reddit .src { color: #92400e; font-size: 12px; margin-top: 8px; }
.otc-reddit a { color: #b45309; }
.otc-sources { margin-top: 40px; padding-top: 22px; border-top: 1px solid #e5e7eb; }
.otc-sources h2 { font-size: 18px; color: #475569; margin-bottom: 14px; }
.otc-sources ol { padding-left: 22px; color: #475569; font-size: 13px; }
.otc-sources li { margin-bottom: 6px; line-height: 1.5; }
.otc-sources a { color: #3b82f6; }
.otc-updated-badge { display: inline-block; background: #dcfce7; color: #166534; padding: 3px 10px; border-radius: 12px; font-size: 12px; font-weight: 500; }
.otc-article h2 { font-size: 26px; margin: 36px 0 16px; color: #0f172a; scroll-margin-top: 80px; line-height: 1.3; font-weight: 700; }
.otc-article h3 { font-size: 19px; margin: 24px 0 12px; color: #1e293b; scroll-margin-top: 80px; line-height: 1.4; font-weight: 600; }
.otc-article h4 { font-size: 16px; margin: 18px 0 8px; color: #334155; }
.otc-article p { margin: 0 0 14px; }
.otc-article ul, .otc-article ol { margin: 0 0 16px 24px; }
.otc-article ul li, .otc-article ol li { margin-bottom: 6px; }
.otc-article a { color: #3b82f6; text-decoration: underline; text-underline-offset: 2px; }
.otc-article a:hover { color: #1e40af; }
.otc-article table { border-collapse: collapse; margin: 18px 0; width: 100%; font-size: 14px; }
.otc-article th, .otc-article td { border: 1px solid #e5e7eb; padding: 10px 14px; text-align: left; }
.otc-article th { background: #f8fafc; font-weight: 600; color: #1e293b; }
.otc-article blockquote { border-left: 3px solid #cbd5e1; padding: 10px 18px; margin: 18px 0; color: #475569; background: #f8fafc; font-style: italic; }
.otc-article img { max-width: 100%; height: auto; border-radius: 8px; margin: 18px 0; display: block; }
.otc-article figure { margin: 18px 0; }
.otc-article figcaption { font-size: 13px; color: #64748b; text-align: center; margin-top: 6px; font-style: italic; }
/* Widgets interactifs */
.otc-widget { border-radius: 12px; padding: 22px 24px; margin: 28px 0; border: 1px solid; }
.otc-widget-header { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.otc-widget-icon { font-size: 32px; line-height: 1; }
.otc-widget h3.otc-widget-title { font-size: 18px; margin: 0; line-height: 1.3; }
.otc-widget-label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; opacity: 0.85; margin-bottom: 2px; }
.otc-widget-desc { font-size: 14px; line-height: 1.5; margin: 0 0 16px; opacity: 0.95; }
.otc-widget-quiz { background: linear-gradient(135deg,#ddd6fe22,#c4b5fd22); border-color: #a78bfa; }
.otc-widget-quiz h3, .otc-widget-quiz .otc-widget-label { color: #5b21b6; }
.otc-widget-calculator { background: linear-gradient(135deg,#fef3c7,#fde68a); border-color: #fcd34d; }
.otc-widget-calculator h3, .otc-widget-calculator .otc-widget-label { color: #78350f; }
.otc-widget-comparator { background: linear-gradient(135deg,#dbeafe,#bfdbfe); border-color: #60a5fa; }
.otc-widget-comparator h3, .otc-widget-comparator .otc-widget-label { color: #1e40af; }
.otc-widget-poll { background: linear-gradient(135deg,#fce7f3,#fbcfe8); border-color: #f472b6; }
.otc-widget-poll h3, .otc-widget-poll .otc-widget-label { color: #9d174d; }
.otc-widget-infographic { background: linear-gradient(135deg,#d1fae5,#a7f3d0); border-color: #34d399; }
.otc-widget-infographic h3, .otc-widget-infographic .otc-widget-label { color: #065f46; }
.otc-quiz-question { margin-bottom: 14px; padding: 12px; background: rgba(255,255,255,0.6); border-radius: 8px; }
.otc-quiz-question .q { font-weight: 600; margin-bottom: 8px; color: #1e293b; }
.otc-quiz-options { display: grid; gap: 6px; }
.otc-quiz-options label { display: flex; align-items: center; gap: 8px; padding: 8px 10px; background: white; border: 1px solid #e5e7eb; border-radius: 6px; cursor: pointer; transition: all 0.12s; font-size: 14px; }
.otc-quiz-options label:hover { border-color: #7c3aed; background: #faf5ff; }
.otc-quiz-options input[type=radio] { margin: 0; }
.otc-quiz-options input[type=radio]:checked + span { font-weight: 600; }
.otc-quiz-result { margin-top: 14px; padding: 12px 16px; background: white; border-radius: 8px; font-weight: 600; text-align: center; display: none; }
.otc-quiz-result.show { display: block; }
.otc-btn { background: #7c3aed; color: white; border: none; padding: 10px 18px; border-radius: 6px; cursor: pointer; font-weight: 500; font-size: 14px; transition: background 0.15s; }
.otc-btn:hover { background: #6d28d9; }
.otc-widget-calculator .otc-btn { background: #b45309; }
.otc-widget-calculator .otc-btn:hover { background: #92400e; }
.otc-widget-comparator .otc-btn { background: #2563eb; }
.otc-widget-comparator .otc-btn:hover { background: #1d4ed8; }
.otc-widget-poll .otc-btn { background: #db2777; }
.otc-widget-poll .otc-btn:hover { background: #be185d; }
.otc-calc-row { display: flex; gap: 10px; align-items: center; margin-bottom: 10px; flex-wrap: wrap; }
.otc-calc-row label { font-weight: 500; min-width: 130px; font-size: 14px; }
.otc-calc-row input { flex: 1; padding: 8px 10px; border: 1px solid #fcd34d; border-radius: 6px; font-size: 14px; min-width: 120px; }
.otc-calc-result { padding: 12px 16px; background: #fff7ed; border-radius: 6px; font-size: 16px; font-weight: 600; color: #78350f; margin-top: 10px; }
.otc-poll-options { display: grid; gap: 8px; }
.otc-poll-option { background: white; border: 1px solid #f9a8d4; border-radius: 6px; padding: 10px 14px; cursor: pointer; position: relative; overflow: hidden; transition: border-color 0.12s; }
.otc-poll-option:hover { border-color: #ec4899; }
.otc-poll-option .pct-bar { position: absolute; left: 0; top: 0; bottom: 0; background: rgba(236, 72, 153, 0.15); transition: width 0.5s; z-index: 0; width: 0; }
.otc-poll-option .pct-text { position: relative; z-index: 1; display: flex; justify-content: space-between; }
.otc-poll-voted .otc-poll-option { cursor: default; }
.otc-comp-table { width: 100%; background: white; border-radius: 6px; overflow: hidden; }
.otc-comp-table th { background: #1e40af; color: white; padding: 8px 10px; text-align: left; font-size: 13px; }
.otc-comp-table td { padding: 8px 10px; border-bottom: 1px solid #dbeafe; font-size: 14px; }
.otc-comp-table tr:last-child td { border-bottom: none; }
/* Floating sidebar TOC (desktop right, mobile collapsible top) */
.otc-floating-toc {
background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 10px;
padding: 12px 16px; margin: 0 0 24px;
font-size: 13px;
}
.otc-toc-toggle {
background: none; border: 0; width: 100%; display: flex; justify-content: space-between; align-items: center;
font-weight: 700; color: #0f172a; font-size: 13px; text-transform: uppercase; letter-spacing: 0.05em;
cursor: pointer; padding: 0;
}
.otc-toc-chevron { transition: transform 0.2s; font-size: 14px; }
.otc-floating-toc[data-collapsed=true] .otc-toc-chevron { transform: rotate(-90deg); }
.otc-floating-toc[data-collapsed=true] .otc-toc-list { display: none; }
.otc-toc-list { margin: 12px 0 0; padding-left: 22px; max-height: 50vh; overflow-y: auto; }
.otc-toc-list li { margin-bottom: 5px; line-height: 1.4; }
.otc-toc-list a { color: #475569; text-decoration: none; transition: color 0.12s; display: inline-block; padding: 2px 0; border-left: 2px solid transparent; padding-left: 8px; margin-left: -10px; }
.otc-toc-list a:hover { color: #2563eb; }
.otc-toc-list a.active { color: #2563eb; font-weight: 600; border-left-color: #2563eb; background: #eff6ff; }
@media (min-width: 1200px) {
.otc-floating-toc {
position: fixed;
right: max(20px, calc((100vw – 1100px) / 2));
top: 100px;
width: 240px;
max-height: calc(100vh – 140px);
overflow-y: auto;
z-index: 50;
box-shadow: 0 4px 12px rgba(0,0,0,0.05);
margin: 0;
}
.otc-floating-toc[data-collapsed=true] { width: auto; }
}
@media (min-width: 1500px) {
.otc-floating-toc {
right: max(30px, calc((100vw – 1100px) / 2 – 280px));
top: 100px;
}
}
/* Features bar */
.otc-features-bar { display: flex; gap: 6px; padding: 10px 0; margin: 0 0 16px; flex-wrap: wrap; }
.otc-feat-btn {
background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 6px;
padding: 6px 12px; cursor: pointer; font-size: 13px; color: #475569;
display: inline-flex; align-items: center; gap: 4px; transition: all 0.12s;
}
.otc-feat-btn:hover { background: #eff6ff; border-color: #93c5fd; color: #1e40af; }
.otc-feat-btn.active { background: #dbeafe; border-color: #3b82f6; color: #1e40af; }
@media (max-width: 600px) { .otc-feat-btn span { display: none; } }
/* Pull quotes / Click-to-tweet */
.otc-pullquote {
border-left: 4px solid #1da1f2; background: #f0f9ff;
padding: 18px 22px; margin: 22px 0; border-radius: 0 8px 8px 0;
font-style: italic; color: #1e3a8a;
}
.otc-pullquote-text { font-size: 17px; line-height: 1.6; margin-bottom: 10px; }
.otc-pullquote-tweet {
display: inline-flex; align-items: center; gap: 6px; font-size: 13px;
background: #1da1f2; color: white !important; padding: 6px 14px; border-radius: 18px;
text-decoration: none !important; font-style: normal;
}
.otc-pullquote-tweet:hover { background: #0d8bd9; }
/* Reading mode */
body.otc-reading-mode { background: #faf8f3 !important; }
body.otc-reading-mode .otc-article { max-width: 720px; font-size: 18px; line-height: 1.85; }
body.otc-reading-mode .otc-article h2 { font-size: 28px; }
body.otc-reading-mode header,
body.otc-reading-mode footer,
body.otc-reading-mode aside:not(.otc-tldr-card):not(.otc-author):not(.otc-faq):not(.otc-newsletter):not(.otc-helpful):not(.otc-related):not(.otc-pullquote):not(.otc-stat-card):not(.otc-widget):not(.otc-floating-toc),
body.otc-reading-mode .sidebar,
body.otc-reading-mode .navigation,
body.otc-reading-mode #wpadminbar { display: none !important; }
/* Print */
@media print {
.otc-floating-toc, .otc-features-bar, .otc-share, .otc-newsletter, .otc-helpful, .otc-widget, .otc-progress, .otc-yt-embed, .otc-pullquote-tweet { display: none !important; }
.otc-article { font-size: 11pt; max-width: none; }
.otc-article h2, .otc-article h3 { page-break-after: avoid; }
.otc-article a::after { content: ” (” attr(href) “)”; font-size: 9pt; color: #666; }
}
/* Share buttons */
.otc-share { display: flex; align-items: center; gap: 8px; padding: 12px 0; margin: 0 0 20px; border-top: 1px solid #e5e7eb; border-bottom: 1px solid #e5e7eb; flex-wrap: wrap; }
.otc-share-label { font-size: 13px; color: #64748b; font-weight: 500; }
.otc-share-btn { width: 36px; height: 36px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; color: white; font-weight: 700; font-size: 16px; border: 0; cursor: pointer; transition: transform 0.12s; }
.otc-share-btn:hover { transform: scale(1.1); }
.otc-share-x { background: #000; }
.otc-share-fb { background: #1877f2; }
.otc-share-ln { background: #0a66c2; }
.otc-share-wa { background: #25d366; }
.otc-share-copy { background: #64748b; }
/* Newsletter CTA */
.otc-newsletter { display: flex; align-items: center; gap: 18px; background: linear-gradient(135deg,#fef9c3,#fde68a); border: 1px solid #facc15; border-radius: 12px; padding: 22px 26px; margin: 32px 0; }
.otc-newsletter-icon { font-size: 42px; flex-shrink: 0; }
.otc-newsletter-body { flex: 1; }
.otc-newsletter h3 { margin: 0 0 6px; font-size: 18px; color: #78350f; }
.otc-newsletter p { margin: 0 0 12px; color: #78350f; font-size: 14px; }
.otc-newsletter-form { display: flex; gap: 8px; flex-wrap: wrap; }
.otc-newsletter-form input { flex: 1; min-width: 200px; padding: 10px 14px; border: 1px solid #d97706; border-radius: 6px; font-size: 14px; }
.otc-newsletter-form .otc-btn { background: #d97706; }
.otc-newsletter-form .otc-btn:hover { background: #b45309; }
.otc-newsletter-result { width: 100%; color: #065f46; font-weight: 500; font-size: 14px; margin-top: 8px; }
/* Helpful vote */
.otc-helpful { text-align: center; padding: 20px; margin: 28px 0; background: #f0f9ff; border: 1px dashed #93c5fd; border-radius: 10px; }
.otc-helpful h3 { margin: 0 0 12px; color: #1e40af; font-size: 16px; }
.otc-helpful-buttons { display: flex; gap: 12px; justify-content: center; }
.otc-vote-btn { background: white; border: 1px solid #93c5fd; border-radius: 6px; padding: 10px 20px; cursor: pointer; font-size: 14px; font-weight: 500; color: #1e40af; transition: all 0.12s; }
.otc-vote-btn:hover { background: #2563eb; color: white; }
.otc-vote-thanks { color: #1e40af; font-weight: 500; padding: 8px; }
.otc-vote-thanks a { color: #2563eb; }
/* Related articles */
.otc-related { margin: 36px 0 0; padding-top: 24px; border-top: 1px solid #e5e7eb; }
.otc-related h2 { margin-bottom: 16px; }
.otc-related-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.otc-related-card { display: block; background: white; border: 1px solid #e2e8f0; border-radius: 8px; padding: 14px 16px; text-decoration: none; transition: border-color 0.12s, transform 0.12s; }
.otc-related-card:hover { border-color: #3b82f6; transform: translateY(-2px); }
.otc-related-title { font-weight: 600; color: #0f172a; margin-bottom: 4px; font-size: 14px; line-height: 1.4; }
.otc-related-meta { font-size: 12px; color: #64748b; }
@media (max-width: 600px) { .otc-article h2 { font-size: 22px; } .otc-stats-row { grid-template-columns: 1fr; } .otc-newsletter { flex-direction: column; text-align: center; } }
Emprunter pour investissement locatif est devenu la norme en France. Selon L’Observatoire CrĂ©dit Logement, plus de 85 % des investisseurs passent par le crĂ©dit immobilier pour financer leur acquisition. Mais comment fonctionne rĂ©ellement ce mĂ©canisme ? Combien pouvez-vous emprunter ? Ă quel coĂ»t ? Cet article vous guide pas Ă pas dans les critĂšres des banques, les types de prĂȘt disponibles et les piĂšges Ă Ă©viter pour structurer un projet viable.
Pourquoi emprunter pour investir : l’effet de levier expliquĂ©
Beaucoup croient que l’emprunt pour investissement locatif coĂ»te cher. C’est vrai en valeur absolue : intĂ©rĂȘts + assurance reprĂ©sentent 40-50 % du capital sur 25 ans. Mais c’est une mauvaise lecture.
La vraie question : quel est mon rendement net aprĂšs frais d’emprunt ?
Voici un exemple concret :
- Bien achetĂ© 300 000 ⏠au comptant â loyer 1 200 ⏠= rendement brut 4,8 %
- MĂȘme bien avec emprunt 240 000 ⏠(20 % apport) â mensualitĂ© 1 100 ⏠+ assurance 30 ⏠= 1 130 âŹ
- Flux net : 1 200 ⏠– 1 130 ⏠= 70 ⏠positif
- Votre apport : 60 000 ⏠rĂ©ellement investi â rendement rĂ©el 14 % annuel sur votre cash
C’est l’effet de levier : emprunter amplifie votre rentabilitĂ© si le loyer couvre la mensualitĂ© (et dĂ©passe le coĂ»t du crĂ©dit).
Quel type de prĂȘt pour investissement locatif ?
Les banques ne proposent pas un produit unique. Voici les quatre grandes familles :
PrĂȘt immobilier classique (le plus courant)
DestinĂ© Ă financer l’achat d’un bien locatif. Conditions :
- Apport minimum : 10-20 % du prix
- Durée : 15 à 25 ans
- Taux fixe ou variable (rare depuis 2020)
- CoĂ»t total : intĂ©rĂȘts + assurance emprunteur + frais de dossier + garantie
C’est le produit que proposent les banques gĂ©nĂ©ralistes (CrĂ©dit Agricole, BNP Paribas, SociĂ©tĂ© GĂ©nĂ©rale) et spĂ©cialisĂ©es dans l’immobilier. Source: Cafpi
PrĂȘt viager hypothĂ©caire
Pour les investisseurs de 60+ ans. Vous empruntez sur la valeur du bien, remboursement Ă la vente ou au dĂ©cĂšs de l’emprunteur. Avantage : pas de mensualitĂ© mensuelle, intĂ©rĂȘts capitalisĂ©s. InconvĂ©nient : coĂ»teux et complexe.
Rachat de crédit (regroupement)
Si vous avez dĂ©jĂ 1 ou 2 crĂ©dits (voiture, crĂ©dit conso, crĂ©dit immobilier principal), cette solution fusionne tous les crĂ©dits en un seul. Permet parfois d’augmenter votre enveloppe d’emprunt pour l’investissement locatif.
Exemple : crĂ©dit auto 15 000 âŹ, crĂ©dit perso 10 000 âŹ. Rachat + prĂȘt immobilier 250 000 ⏠= une seule mensualitĂ©. Attention : allonge la durĂ©e = intĂ©rĂȘts plus Ă©levĂ©s au total.
Portage immobilier
L’intermĂ©diaire achĂšte le bien, vous le louez avec option d’achat aprĂšs 2-3 ans. Structure rare, rĂ©servĂ©e aux profils atypiques (freelances, indĂ©pendants sans C/C stable).
Combien puis-je emprunter pour un investissement locatif ?
La capacitĂ© d’emprunt dĂ©pend de trois piliers que les banques examinent :
1. Taux d’endettement maximum (35 % des revenus)
Si vous gagnez 4 000 ⏠nets mensuels :
- Taux d’endettement max = 4 000 Ă 35 % = 1 400 ⏠de mensualitĂ©s toutes dettes confondues
- Vous avez dĂ©jĂ un crĂ©dit auto de 300 ⏠? Reste disponible pour l’immobilier : 1 100 âŹ
- à taux 3,31 % sur 20 ans, cela représente environ 230 000 ⏠empruntables
2. Apport personnel (10-20 % minimum)
Pour 300 000 ⏠de bien :
- Apport minimum : 30 000 ⏠(10 %)
- Mais il faut aussi couvrir les frais (notaire ~8 %, frais de dossier, garantie) = 24 000 ⏠supplémentaires
- Budget réel à prévoir : 50 000-60 000 ⏠en banque
PiĂšge courant : beaucoup calculent avec 10 % d’apport et oublient les frais. RĂ©sultat : ils visent des biens Ă 300 000 ⏠avec 30 000 ⏠en poche, se heurtent au refus Ă la signature.
3. Reste pour vivre (1 200-1 500 ⏠minimum)
AprĂšs toutes vos mensualitĂ©s (emprunt immo + auto + conso + charges) et les revenus locatifs dĂ©duits, il vous doit rester 1 200-1 500 ⏠pour vivre. C’est un garde-fou contre le surendettement.
Quel taux d’endettement pour un investissement locatif ?
Le taux d’endettement est le ratio clĂ© que les banques contrĂŽlent. Il dĂ©termine si vous ĂȘtes solvable.
Calcul simplifié :
Taux d'endettement = (Mensualité immo + autres crédits + charges fixes) / Revenus nets à 100
Exemple concret :
- Revenus nets : 4 500 âŹ
- CrĂ©dit auto : 400 âŹ
- CrĂ©dit immo en projet : 900 âŹ
- Charges fixes (assurances, etc.) : 200 âŹ
- Revenus locatifs nets (aprĂšs frais) : +200 ⏠(dĂ©jĂ locatif) ou 0 ⏠si c’est la premiĂšre
Taux = (400 + 900 + 200 – 200) / 4 500 Ă 100 = 26,7 %
â Acceptable (< 35 %)
Mais attention : Source: Banque de France
- Si vous visez 45 % d’endettement, la plupart des banques refusent
- Entre 35-40 %, c’est du cas par cas (bon dossier requis)
- > 40 % : refus systématique
Insight insider : prĂ©sentez votre dossier en janvier-fĂ©vrier. Les banques ont un quota annuel de crĂ©dits et sont plus flexibles en dĂ©but d’annĂ©e. Un dossier identique prĂ©sentĂ© en dĂ©cembre peut ĂȘtre refusĂ© par manque de budget disponible.
Quels sont les coûts réels cachés ?
Le taux affichĂ© (3,31 %) n’est pas le seul coĂ»t. Voici la liste complĂšte :
Frais de dossier
FacturĂ©s par la banque pour Ă©tudier votre demande. Montant : 500-1 500 âŹ. Non nĂ©gociable en gĂ©nĂ©ral, parfois gratuit si bon client.
Assurance emprunteur
Obligation lĂ©gale depuis 2000. Couvre le dĂ©cĂšs, l’invaliditĂ©, parfois le chĂŽmage. CoĂ»t : 0,35-0,60 % du capital par an.
Exemple : crédit 250 000 ⏠sur 25 ans
- Assurance à 0,45 % = 1 125 ⏠premiÚre année, dégressive
- Total sur 25 ans : 15-18 000 ⏠(vs 50 000 ⏠d’intĂ©rĂȘts)
Ă savoir : vous pouvez changer d’assurance chaque annĂ©e (dĂ©lai de rĂ©tractation, puis droit de substitution). Comparer les offres = 2 000-4 000 ⏠d’Ă©conomie possible.
Garantie ou hypothĂšque
La banque se garantit sur le bien ou enregistre une hypothĂšque. CoĂ»t : 1,5-3 % du prĂȘt.
- Garantie (Crédit Logement, Garantme, etc.) : souvent 1,5-2 %
- HypothĂšque notariĂ©e : 1,5-2,5 % + frais d’inscription
Sur 250 000 âŹ, cela reprĂ©sente 3 750-7 500 âŹ.
Frais notariaux (achat du bien)
Non liĂ©s au crĂ©dit, mais au bien. Environ 7-8 % du prix d’achat.
- 300 000 ⏠de bien â 21 000-24 000 ⏠de frais notariaux
Coût TOTAL pour 300 000 ⏠sur 25 ans (taux 3,31 %)
- IntĂ©rĂȘts : ~115 000 âŹ
- Assurance : 17 000 âŹ
- Frais de dossier : 1 000 âŹ
- Garantie : 5 000 âŹ
- Frais notariaux : 22 000 âŹ
- Total : ~160 000 ⏠(53 % du capital)
DivisĂ© sur 25 ans = coĂ»t annuel rĂ©el 6 400 âŹ. Ă mettre en face du loyer annuel (14 400 ⏠si 1 200 âŹ/mois).
Est-ce une bonne idĂ©e d’emprunter pour investir ?
La réponse est : ça dépend de votre rendement net vs coût du crédit.
Quand c’est profitable
- Rendement brut â„ 5 % et location stable â coĂ»ts crĂ©dit absorbĂ©s
- Bien en zone Ă forte demande (petits studios, T2) â loyers constants
- DurĂ©e 20-25 ans â lisse les coĂ»ts, crĂ©dibilitĂ© fiscale (intĂ©rĂȘts dĂ©ductibles)
- Taux < 3,5 % + apport 20 % â effet de levier positif dĂšs annĂ©e 1
- Vous ĂȘtes CDI stable, sans incident de paiement â accĂšs crĂ©dit meilleur marchĂ©
Quand c’est risquĂ©
- Rendement brut < 4 % â loyer peine Ă couvrir mensualitĂ© + frais
- Taux > 4 % + apport < 10 % â coĂ»ts trop Ă©levĂ©s, effet nĂ©gatif
- Vous avez dĂ©jĂ 2+ crĂ©dits en cours â capacitĂ© restreinte, coĂ»ts majorĂ©s
- Zone rurale ou peu demandĂ©e â vacances longues, baisse de loyer
- CDI rĂ©cent (< 6 mois) ou freelance sans historique â emprunt plus cher ou refusĂ©
- Vous n’avez pas 6 mois d’Ă©pargne de secours â risque d’impayĂ© en cas coup dur
Conseil actionnable concret : avant tout, demandez une préapprobation bancaire à votre banque ET à un courtier (gratuit, 1 semaine). Cette lettre indique exactement :
- Votre capacité emprunt maximum
- Le taux proposé
- Les conditions précises (apport requis, durée, frais)
Chiffre en main, vous savez quels biens viser (pas de rĂȘverie). Vous rejetez aussi les arnaques d’intermĂ©diaires qui promettent des miracles.
Investissement locatif sans apport : c’est possible ?
Oui, mais trĂšs exceptionnel. Conditions strictes :
Profils acceptés
- Salaire trÚs stable et élevé (> 4 500 ⏠net)
- Ăpargne consĂ©quente en banque (> 100 000 âŹ, non mobilisĂ©e pour le crĂ©dit)
- Aucun défaut de paiement passé
- MĂ©tiers spĂ©cifiques (mĂ©decin, avocat, cadre banque) â les banques accordent mieux
- Crédit > 300 000 ⏠(ratio de coût fixe plus favorable)
Coûts additionnels
Sans apport visible, les banques majorent :
- Le taux : +0,25-0,5 %
- L’assurance : +0,1-0,2 %
- La garantie : passée à 2-2,5 %
- Durée min 25 ans (pas 20 ou 15 ans)
RĂ©sultat : crĂ©dit sans apport coĂ»te 15-25 % plus cher qu’avec 20 % d’apport. Ă Ă©viter si vous avez du cash.
Alternative : SCI (Société Civile ImmobiliÚre)
Une SCI peut emprunter sans apport personnel si elle justifie d’une trĂ©sorerie. IntĂ©rĂȘt : dĂ©duire 100 % des intĂ©rĂȘts en tant que personne morale (vs parts aliquotes en direct). CoĂ»te plus cher Ă constituer (avocat, frais d’immatriculation) mais rentabilisĂ© sur 10+ ans.
Meilleure banque pour emprunter pour investissement locatif
Il n’existe pas une “meilleure” banque universelle. Cela dĂ©pend de votre profil. Voici les catĂ©gories :
Banques généralistes (taux concurrentiels, mais moins flexibles)
- Crédit Agricole : excellente réputation immobilier, taux compétitifs pour CDI stables
- Société Générale : bonne offre, services numériques
- BNP Paribas : structures complexes (SCI, portage) mieux traitées
Banques en ligne / courtiers en crédit (plus rapides, plus flexibles)
- Vousfinance, Pretto, Meilleur Taux : comparaison instantanée, taux souvent 0,2-0,4 % moins chers
- Avantage : pas de rendez-vous, dossier 100 % numérique
- Attention : frais de courtage 0-1,5 % (parfois remboursĂ©s si prĂȘt signĂ©)
Banques postales et mutualistes (profils spécifiques)
- La Banque Postale : bons taux pour fonctionnaires, salariés stables
- CrĂ©dit Mutuel, Caisse d’Ăpargne : avantages clients membres, taux nĂ©gociables
Stratégie gagnante :
1. Demandez un taux Ă votre banque actuelle (vous y ĂȘtes client depuis 3+ ans = avantage)
2. Contactez 2-3 courtiers (gratuit) pour comparer
3. Négociez avec votre banque en brandissant les offres des courtiers
4. Ăconomies rĂ©alistes : 0,25-0,5 % = 40-80 000 ⏠sur 25 ans
Ne choisissez pas sur le taux seul : incluez frais de dossier, assurance proposée, services additionnels (renégociation gratuite, etc.).
Simulation : calculer votre enveloppe d’emprunt
Voici un cas réel pour fixer les idées :
Profil : Salaire 5 000 ⏠nets, crĂ©dit auto 350 âŹ, apport 50 000 âŹ, bien visĂ© 280 000 âŹ.
Ătape 1 : CapacitĂ© d’emprunt thĂ©orique
- Revenus nets : 5 000 âŹ
- Endettement max : 35 % = 1 750 âŹ
- CrĂ©dit auto existant : 350 âŹ
- Disponible pour immo : 1 750 – 350 = 1 400 ⏠/ mois
- Ă taux 3,31 % sur 25 ans â enveloppe max : 265 000 âŹ
Ătape 2 : Montant rĂ©ellement empruntable
- Bien visĂ© : 280 000 âŹ
- Apport : 50 000 âŹ
- Ă emprunter : 230 000 âŹ
- Frais (notaire 7 % + dossier) : 20 600 âŹ
- Apport rĂ©el requis : 50 000 + 20 600 = 70 600 âŹ
- â Faisable (vous avez 50 000 ⏠â manque 20 600 âŹ, Ă vĂ©rifier trĂ©sorerie)
Ătape 3 : MensualitĂ© et reste pour vivre
- Emprunt 230 000 ⏠à 3,31 % sur 25 ans = 1 015 âŹ
- + Assurance emprunteur (0,45 %) = 97 ⏠/ mois
- MensualitĂ© totale : 1 112 âŹ
- Loyer locatif : 1 400 ⏠/ mois
- Flux net avant frais : 1 400 – 1 112 = 288 ⏠(0,1 % rendement net = trĂšs faible)
- AprÚs frais (taxes, entretien 10 %) : -142 ⏠mensuel = négatif
â Ce bien n’est PAS viable pour cet investisseur. Rendement trop faible. Ă chercher dans une zone avec loyers plus Ă©levĂ©s (500 ⏠pour 280 000 ⏠= 5,8 % brut minimum).
Checklist avant de demander un crédit
1. Dossier bancaire irréprochable
– Aucun incident de paiement †5 ans
– Absence de fichage Banque de France (FCC)
– Comptes rĂ©guliĂšrement alimentĂ©s (3-6 mois d’historique demandĂ©)
2. Documents prĂȘts
– 3 derniers bulletins de paie
– Avis d’imposition (N-1 et N-2)
– Justificatif d’apport personnel (relevĂ© bancaire + lettre de non-donation si hĂ©ritage)
– CV / contrat de travail (si CDI rĂ©cent)
– PrĂ©vu de vente du bien cible (s’il existe)
3. Timing stratégique
– Demander en janvier-fĂ©vrier (quotas annuels moins serrĂ©s)
– Ne pas solliciter plusieurs banques en moins de 2 semaines (impacts score crĂ©dit)
– Attendre 6 mois aprĂšs un changement d’emploi avant de demander
4. Négociation
– Obtenir 2-3 devis taux diffĂ©rents
– Comparer frais totaux (pas juste le taux)
– Laisser la porte ouverte Ă renĂ©gociation annĂ©e 3
5. Décision finale
– VĂ©rifier ratio loyer/mensualitĂ© â„ 130 %
– S’assurer que rendement net (aprĂšs tous frais) > 2 % minimum
– Garder 6 mois de trĂ©sorerie de secours (vacances, rĂ©parations)
Questions fréquentes
Quel type de prĂȘt pour investissement locatif ?
Quatre types principaux : prĂȘt immobilier classique (le plus courant, 10-20 % apport requis), prĂȘt viager hypothĂ©caire (pour 60+ ans, remboursement Ă la vente), rachat de crĂ©dit (si vous avez dĂ©jĂ plusieurs crĂ©dits), portage immobilier (intermĂ©diaire achĂšte, vous louez). Le prĂȘt classique reste le meilleur rapport coĂ»t/flexibilitĂ© pour 80 % des investisseurs.
Combien puis-je emprunter pour un investissement locatif ?
Cela dĂ©pend de trois critĂšres : taux d’endettement max 35 % de vos revenus nets, apport minimum 10-20 % + frais (6-8 %), reste pour vivre minimum 1 200-1 500 ⏠aprĂšs tous les crĂ©dits. Exemple : salaire 5 000 âŹ, crĂ©dit auto 350 âŹ, apport 50 000 ⏠= enveloppe environ 230-250 000 ⏠empruntables.
Quel taux d’endettement pour un investissement locatif ?
Le taux d’endettement ne doit pas dĂ©passer 35 % de vos revenus nets mensuels (incluant tous vos crĂ©dits). Formule : (mensualitĂ© immo + autres crĂ©dits + charges) / revenus nets Ă 100 †35 %. Entre 35-40 %, c’est du cas par cas. Au-delĂ de 40 %, refus systĂ©matique.
Est-ce une bonne idĂ©e d’emprunter pour investir ?
Oui si rendement net > coĂ»t du crĂ©dit (intĂ©rĂȘts + assurance â 3,6-4 % minimum). Non si rendement brut < 4,5 % ou si vous avez dĂ©jĂ plusieurs crĂ©dits en cours. Conseil : obtenir une prĂ©approbation bancaire avant de chercher le bien, cela valide votre capacitĂ© rĂ©elle.
Investissement locatif sans apport : c’est vraiment possible ?
TrĂšs exceptionnellement, pour salaires trĂšs stables (> 4 500 ⏠net) et Ă©pargne consĂ©quente non mobilisĂ©e. Les banques majorent alors le taux de +0,25-0,5 %, l’assurance de +0,1-0,2 %, et imposent durĂ©e min 25 ans. CoĂ»te 15-25 % plus cher qu’avec 20 % d’apport. Alternative : constituer une SCI pour meilleure fiscalitĂ©.
Faut-il passer par un courtier ou une banque directement ?
Les deux. Demandez d’abord Ă votre banque actuelle (avantage client 3+ ans), puis contactez 2-3 courtiers en ligne gratuitement (Pretto, Meilleur Taux). Comparez taux + frais totaux, nĂ©gociez auprĂšs de votre banque. Ăconomies rĂ©alistes : 0,25-0,5 % = 40-80 000 ⏠sur la durĂ©e.
Quels coûts cachés dois-je prévoir au-delà du taux affiché ?
Frais de dossier (500-1 500 âŹ), assurance emprunteur (0,35-0,60 % annuel, soit 15-18 000 ⏠sur 25 ans), garantie/hypothĂšque (1,5-3 %), frais notariaux (7-8 % du prix du bien). Total rĂ©el : 40-50 % du capital empruntĂ© sur 25 ans, pas juste les intĂ©rĂȘts affichĂ©s.
Puis-je renégocier mon crédit immobilier aprÚs ?
Oui, aprĂšs 3 ans minimum (dĂ©lai de rĂ©tractation rĂ©volu). Si taux baisse de 0,5 %, cela reprĂ©sente souvent 200-300 ⏠d’Ă©conomies mensuelles. Frais : 500-1 500 ⏠dossier + notaire max 300 âŹ. RentabilisĂ© en 2-3 mois gĂ©nĂ©ralement. Ă faire absolument en contexte Ă©conomique baissier.
đ Sources & rĂ©fĂ©rences
- CAFPI – Courtiers immobiliers professionnels â CAFPI
- Banque de France – Informations crĂ©dit et surendettement â Banque de France
- L’Observatoire CrĂ©dit Logement – Taux moyens 2026 â Observatoire CrĂ©dit Logement
- SeLoger – Guide complet investissement locatif 2026 â SeLoger
- La Banque Postale – CrĂ©dit immobilier pour investissement â La Banque Postale
/* Otomatic Widgets â vanilla JS, externe pour passer les filtres WP/CMS */
(function () {
‘use strict’;
function init() {
// Reading progress
var p = document.getElementById(‘otc-progress’);
if (p) {
function upd() {
var s = window.scrollY,
h = document.documentElement.scrollHeight – window.innerHeight;
p.style.width = (h ? (s / h) * 100 : 0) + ‘%’;
}
document.addEventListener(‘scroll’, upd, { passive: true });
upd();
}
// Quiz interactif
document.querySelectorAll(‘.otc-widget-quiz’).forEach(function (quiz) {
var qs = quiz.querySelectorAll(‘.otc-quiz-question’);
if (!qs.length) return;
var btn = quiz.querySelector(‘.otc-quiz-submit’);
var res = quiz.querySelector(‘.otc-quiz-result’);
if (btn && !btn.dataset.bound) {
btn.dataset.bound = ‘1’;
btn.addEventListener(‘click’, function () {
var score = 0,
total = qs.length;
qs.forEach(function (q) {
var sel = q.querySelector(‘input[type=radio]:checked’);
if (sel && sel.dataset.correct === ‘1’) score++;
});
var pct = Math.round((score / total) * 100);
var msg =
pct >= 80 ? ‘đ Excellent ! ‘ : pct >= 50 ? ‘đ Pas mal ! ‘ : ‘đ Continuez Ă apprendre ! ‘;
res.textContent = msg + ‘Score : ‘ + score + ‘/’ + total + ‘ (‘ + pct + ‘%)’;
res.classList.add(‘show’);
});
}
});
// Calculateur live
document.querySelectorAll(‘.otc-widget-calculator-inner’).forEach(function (calc) {
var inputs = calc.querySelectorAll(‘input[type=number]’);
var resEl = calc.querySelector(‘.otc-calc-result’);
var formula = calc.dataset.formula || ‘v.a + v.b’;
var unit = calc.dataset.unit || ”;
var label = calc.dataset.resultLabel || ‘Total : ‘;
if (!inputs.length || !resEl) return;
// Nettoie la formule : strip “var”/”let”/”const” dĂ©clarations + dĂ©tecte si c’est une expression ou un body
var formulaClean = formula
.replace(/b(var|let|const)s+/g, ”) // strip dĂ©clarations
.replace(/bv.s*varb/g, ‘v.v’) // au cas oĂč Claude Ă©crit v.var
.trim();
var isBody = /[;]s*S/.test(formulaClean) || /breturnb/.test(formulaClean);
function compute() {
var values = {};
inputs.forEach(function (i) {
values[i.name] = parseFloat(i.value) || 0;
});
try {
var fn;
if (isBody) {
// Body : ajoute return si absent
var body = /breturnb/.test(formulaClean) ? formulaClean : (formulaClean + ‘; return v.result || 0;’);
fn = new Function(‘v’, body);
} else {
fn = new Function(‘v’, ‘return (‘ + formulaClean + ‘)’);
}
var r = fn(values);
var out =
typeof r === ‘number’
? Math.round(r * 100) / 100
: r;
resEl.textContent = label + out + unit;
} catch (e) {
resEl.textContent = ‘Erreur de calcul : ‘ + e.message;
}
}
inputs.forEach(function (i) {
if (!i.dataset.bound) {
i.dataset.bound = ‘1’;
i.addEventListener(‘input’, compute);
}
});
compute();
});
// Sondage avec localStorage
document.querySelectorAll(‘.otc-widget-poll [data-poll-id]’).forEach(function (poll) {
var pollId = poll.dataset.pollId;
var key = ‘otc_poll_’ + pollId;
var stored = JSON.parse(localStorage.getItem(key) || ‘{“votes”:{},”voted”:false}’);
var options = poll.querySelectorAll(‘.otc-poll-option’);
function render() {
var totalVotes = Object.values(stored.votes).reduce(function (a, b) {
return a + b;
}, 0);
if (totalVotes === 0) totalVotes = 1;
options.forEach(function (o) {
var k = o.dataset.optionKey;
var v = stored.votes[k] || 0;
var pct = Math.round((v / totalVotes) * 100);
var bar = o.querySelector(‘.pct-bar’);
var pctEl = o.querySelector(‘.pct’);
if (bar) bar.style.width = pct + ‘%’;
if (pctEl && stored.voted) pctEl.textContent = pct + ‘%’;
});
if (stored.voted) poll.classList.add(‘otc-poll-voted’);
}
options.forEach(function (o) {
if (o.dataset.bound) return;
o.dataset.bound = ‘1’;
o.addEventListener(‘click’, function () {
if (stored.voted) return;
var k = o.dataset.optionKey;
stored.votes[k] = (stored.votes[k] || 0) + 1;
stored.voted = true;
localStorage.setItem(key, JSON.stringify(stored));
render();
});
});
render();
});
// Floating TOC scroll spy + collapse toggle
var toc = document.querySelector(‘.otc-floating-toc’);
if (toc) {
var toggle = toc.querySelector(‘.otc-toc-toggle’);
var headings = document.querySelectorAll(‘.otc-article h2[id]’);
var links = toc.querySelectorAll(‘a[href^=”#”]’);
// Collapse au clic
if (toggle && !toggle.dataset.bound) {
toggle.dataset.bound = ‘1’;
toggle.addEventListener(‘click’, function () {
var collapsed = toc.dataset.collapsed === ‘true’;
toc.dataset.collapsed = collapsed ? ‘false’ : ‘true’;
toggle.setAttribute(‘aria-expanded’, collapsed ? ‘true’ : ‘false’);
});
}
// Auto-collapse au scroll vers le bas (mobile)
function spy() {
var sy = window.scrollY + 120;
var current = null;
headings.forEach(function (h) {
if (h.offsetTop = 13 && savedFs <= 22) {
var body = document.querySelector('.otc-article');
if (body) body.style.fontSize = savedFs + 'px';
}
} catch (e) {}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', init);
} else {
init();
}
// Re-init si contenu ajouté dynamiquement (idempotent grùce aux dataset.bound)
setTimeout(init, 1500);
})();





