---
title: Calculateur de papier peint + Nous calculons vos besoins en papier peint
description: "We will be happy to calculate the amount of wallpaper you require.\nPlease send us the completed form and we will usually respond within 24 hours (Monday to Friday)."
---

[Passer au contenu](https://support.meinewand.com/fr/demande-de-papier-peint#main-content)

- [Français](https://support.meinewand.com/fr/demande-de-papier-peint)
- [Deutsch](https://support.meinewand.com/de/anfrage-tapetenbedarf)
- [English](https://support.meinewand.com/en/request-for-required-amount-of-wallpaper)
- [Italiano](https://support.meinewand.com/it/richiesta-di-carta-da-parati)

Français

Afficher le sous-menu pour les traductions

[![MEINEWAND Onlineshop](https://support.meinewand.com/hs-fs/hubfs/meinewand_logo@2x.webp?width=488&height=78&name=meinewand_logo@2x.webp)](https://www.meinewand.com/fr)

Ouvrir la navigation principale

Fermer la navigation principale

- - [Français](https://support.meinewand.com/fr/demande-de-papier-peint)
    - [Deutsch](https://support.meinewand.com/de/anfrage-tapetenbedarf)
    - [English](https://support.meinewand.com/en/request-for-required-amount-of-wallpaper)
    - [Italiano](https://support.meinewand.com/it/richiesta-di-carta-da-parati)

  Français
  
  Afficher le sous-menu pour les traductions
- [Contactez-nous](https://support.meinewand.com/fr/contact)

[Contactez-nous](https://support.meinewand.com/fr/contact?hsLang=fr)

 Bonjour. Comment pouvons-nous vous aider?

- Il n'y a aucune suggestion car le champ de recherche est vide.

1. [centre d'assistance](https://support.meinewand.com/fr?hsLang=fr)
2. [Centre de services](https://support.meinewand.com/fr/centre-de-services?hsLang=fr)
3. [Formulaire de service](https://support.meinewand.com/fr/centre-de-services?hsLang=fr#formulaire-de-service)

# Calculateur de papier peint + Nous calculons vos besoins en papier peint

## We will be happy to calculate the amount of wallpaper you require. Please send us the completed form and we will usually respond within 24 hours (Monday to Friday).

Voici un calculateur de papier peint qui vous permettra d'estimer la quantité nécessaire.   
Les calculs ne sont PAS exacts, ils ne servent qu'à donner une estimation !  
Pour un calcul précis, veuillez contacter notre service clientèle à l'aide du formulaire ci-dessous. 

[**\>\> Accéder au formulaire de calcul précis !**](https://support.meinewand.com/fr/demande-de-papier-peint#Formular-Tapetenbedarf)

<iframe title="Calculateur de papier peint" style="width:100%;max-width:920px;min-height:760px;border:0;display:block;margin:0 auto;overflow:hidden;" loading="lazy" srcdoc="<!DOCTYPE html>
<html lang=&quot;fr&quot;>
<head>
  <meta charset=&quot;utf-8&quot;>
  <meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;>
  <title>MEINEWAND Calculateur de papier peint</title>
  <link rel=&quot;preconnect&quot; href=&quot;https://fonts.googleapis.com&quot;>
  <link rel=&quot;preconnect&quot; href=&quot;https://fonts.gstatic.com&quot; crossorigin>
  <link href=&quot;https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600&amp;family=Inter:wght@400;500&amp;display=swap&quot; rel=&quot;stylesheet&quot;>
  <style>
    html, body { margin: 0; padding: 0; background: #faf7f2; }
  </style>
</head>
<body>
<div id=&quot;mw-tapetenrechner&quot; data-default-overlap=&quot;10&quot;>
  <style>
    /* === MEINEWAND Markenvariablen ============================== */
    #mw-tapetenrechner {
      --mw-bg:        #faf7f2;
      --mw-surface:   #ffffff;
      --mw-ink:       #1c1c1c;
      --mw-ink-soft:  #4a4a4a;
      --mw-muted:     #8a857d;
      --mw-line:      #e6e0d6;
      --mw-accent:    #b89968;
      --mw-accent-dk: #8d6f43;
      --mw-soft:      #f3ede2;
      --mw-error:     #a83232;

      --mw-radius:    4px;
      --mw-font-head: 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
      --mw-font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;

      font-family: var(--mw-font-body);
      color: var(--mw-ink);
      background: var(--mw-bg);
      max-width: 880px;
      margin: 0 auto;
      padding: 32px 28px 40px;
      box-sizing: border-box;
      line-height: 1.55;
      font-size: 15px;
    }

    #mw-tapetenrechner *,
    #mw-tapetenrechner *::before,
    #mw-tapetenrechner *::after { box-sizing: border-box; }

    #mw-tapetenrechner h2 {
      font-family: var(--mw-font-head);
      font-weight: 500;
      font-size: 32px;
      line-height: 1.15;
      margin: 0 0 6px;
      letter-spacing: 0.2px;
    }
    #mw-tapetenrechner h3 {
      font-family: var(--mw-font-head);
      font-weight: 500;
      font-size: 20px;
      margin: 0 0 14px;
      letter-spacing: 0.3px;
    }
    #mw-tapetenrechner .mw-lead {
      color: var(--mw-ink-soft);
      margin: 0 0 24px;
      font-size: 14px;
    }
    #mw-tapetenrechner .mw-card {
      background: var(--mw-surface);
      border: 1px solid var(--mw-line);
      border-radius: var(--mw-radius);
      padding: 22px 22px 18px;
      margin-bottom: 18px;
    }
    #mw-tapetenrechner label {
      display: block;
      font-size: 12px;
      letter-spacing: 0.6px;
      text-transform: uppercase;
      color: var(--mw-muted);
      margin: 0 0 6px;
      font-weight: 500;
    }
    #mw-tapetenrechner input[type=&quot;number&quot;],
    #mw-tapetenrechner input[type=&quot;text&quot;],
    #mw-tapetenrechner select {
      width: 100%;
      padding: 10px 12px;
      border: 1px solid var(--mw-line);
      border-radius: var(--mw-radius);
      background: #fff;
      font-family: inherit;
      font-size: 15px;
      color: var(--mw-ink);
      transition: border-color .15s ease, box-shadow .15s ease;
      -moz-appearance: textfield;
    }
    #mw-tapetenrechner input[type=number]::-webkit-outer-spin-button,
    #mw-tapetenrechner input[type=number]::-webkit-inner-spin-button {
      -webkit-appearance: none; margin: 0;
    }
    #mw-tapetenrechner input:focus,
    #mw-tapetenrechner select:focus {
      outline: none;
      border-color: var(--mw-accent);
      box-shadow: 0 0 0 3px rgba(184,153,104,.18);
    }
    #mw-tapetenrechner .mw-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 14px 16px;
    }
    #mw-tapetenrechner .mw-grid-3 {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 14px 16px;
    }
    @media (max-width: 600px) {
      #mw-tapetenrechner { padding: 22px 16px; }
      #mw-tapetenrechner h2 { font-size: 26px; }
      #mw-tapetenrechner .mw-grid,
      #mw-tapetenrechner .mw-grid-3 { grid-template-columns: 1fr; }
    }
    #mw-tapetenrechner .mw-hint {
      display: block;
      font-size: 12px;
      color: var(--mw-muted);
      margin-top: 4px;
      text-transform: none;
      letter-spacing: 0;
    }
    #mw-tapetenrechner .mw-row-head {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 12px;
    }
    #mw-tapetenrechner .mw-row-head h4 {
      font-family: var(--mw-font-head);
      font-weight: 500;
      font-size: 17px;
      margin: 0;
    }
    #mw-tapetenrechner .mw-wall {
      border: 1px solid var(--mw-line);
      border-radius: var(--mw-radius);
      padding: 16px;
      margin-bottom: 12px;
      background: #fcfaf6;
    }
    #mw-tapetenrechner .mw-opening {
      display: grid;
      grid-template-columns: 1fr 1fr auto;
      gap: 10px;
      align-items: end;
      margin-top: 8px;
    }
    #mw-tapetenrechner .mw-openings { margin-top: 14px; }
    #mw-tapetenrechner .mw-openings-head {
      font-size: 12px;
      letter-spacing: 0.6px;
      text-transform: uppercase;
      color: var(--mw-muted);
      margin: 4px 0 8px;
    }
    #mw-tapetenrechner .mw-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      padding: 11px 22px;
      font-family: inherit;
      font-size: 14px;
      letter-spacing: 0.8px;
      text-transform: uppercase;
      border-radius: var(--mw-radius);
      cursor: pointer;
      border: 1px solid var(--mw-ink);
      background: var(--mw-ink);
      color: #fff;
      transition: background .15s ease, color .15s ease, border-color .15s ease;
      font-weight: 500;
    }
    #mw-tapetenrechner .mw-btn:hover { background: var(--mw-accent-dk); border-color: var(--mw-accent-dk); }
    #mw-tapetenrechner .mw-btn-ghost {
      background: transparent;
      color: var(--mw-ink);
      border: 1px solid var(--mw-line);
    }
    #mw-tapetenrechner .mw-btn-ghost:hover {
      background: var(--mw-soft);
      border-color: var(--mw-accent);
      color: var(--mw-ink);
    }
    #mw-tapetenrechner .mw-btn-link {
      background: none;
      border: none;
      color: var(--mw-accent-dk);
      cursor: pointer;
      font: inherit;
      padding: 4px 6px;
      font-size: 13px;
      text-decoration: underline;
      text-underline-offset: 3px;
    }
    #mw-tapetenrechner .mw-btn-link:hover { color: var(--mw-ink); }
    #mw-tapetenrechner .mw-btn-icon {
      width: 32px; height: 32px;
      border: 1px solid var(--mw-line);
      background: #fff;
      border-radius: var(--mw-radius);
      cursor: pointer;
      color: var(--mw-ink-soft);
      font-size: 18px;
      line-height: 1;
      display: inline-flex;
      align-items: center;
      justify-content: center;
    }
    #mw-tapetenrechner .mw-btn-icon:hover { background: var(--mw-soft); color: var(--mw-error); border-color: var(--mw-error); }
    #mw-tapetenrechner .mw-actions {
      display: flex;
      gap: 12px;
      flex-wrap: wrap;
      margin-top: 8px;
      margin-bottom: 24px;
    }
    #mw-tapetenrechner .mw-result {
      background: var(--mw-ink);
      color: #fff;
      border-radius: var(--mw-radius);
      padding: 28px 26px;
      margin-top: 8px;
    }
    #mw-tapetenrechner .mw-result h3 {
      color: #fff;
      margin-bottom: 4px;
    }
    #mw-tapetenrechner .mw-result .mw-result-sub {
      color: rgba(255,255,255,.65);
      font-size: 13px;
      margin-bottom: 18px;
    }
    #mw-tapetenrechner .mw-result-big {
      font-family: var(--mw-font-head);
      font-size: 56px;
      line-height: 1;
      color: var(--mw-accent);
      margin: 14px 0 4px;
      font-weight: 500;
    }
    #mw-tapetenrechner .mw-result-big small {
      font-size: 18px;
      color: rgba(255,255,255,.7);
      margin-left: 8px;
      font-family: var(--mw-font-body);
    }
    #mw-tapetenrechner .mw-result table {
      width: 100%;
      border-collapse: collapse;
      margin-top: 18px;
      font-size: 14px;
    }
    #mw-tapetenrechner .mw-result th,
    #mw-tapetenrechner .mw-result td {
      text-align: left;
      padding: 8px 10px;
      border-bottom: 1px solid rgba(255,255,255,.1);
    }
    #mw-tapetenrechner .mw-result th {
      font-weight: 500;
      color: rgba(255,255,255,.6);
      text-transform: uppercase;
      letter-spacing: 0.6px;
      font-size: 11px;
    }
    #mw-tapetenrechner .mw-result td.num { text-align: right; font-variant-numeric: tabular-nums; }
    #mw-tapetenrechner .mw-result th.num { text-align: right; }
    #mw-tapetenrechner .mw-result-meta {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 14px;
      margin-top: 22px;
      padding-top: 18px;
      border-top: 1px solid rgba(255,255,255,.12);
    }
    @media (max-width: 600px) {
      #mw-tapetenrechner .mw-result-meta { grid-template-columns: 1fr; }
      #mw-tapetenrechner .mw-result-big { font-size: 44px; }
    }
    #mw-tapetenrechner .mw-result-meta .mw-meta-label {
      font-size: 11px; text-transform: uppercase; letter-spacing: 0.6px;
      color: rgba(255,255,255,.6); margin-bottom: 4px;
    }
    #mw-tapetenrechner .mw-result-meta .mw-meta-value {
      font-size: 18px; color: #fff; font-variant-numeric: tabular-nums;
    }
    #mw-tapetenrechner .mw-error-box {
      background: #fdecec;
      border: 1px solid var(--mw-error);
      color: var(--mw-error);
      padding: 12px 14px;
      border-radius: var(--mw-radius);
      margin-bottom: 16px;
      font-size: 14px;
    }
    #mw-tapetenrechner .mw-foot-note {
      font-size: 12px;
      color: var(--mw-muted);
      margin-top: 16px;
      line-height: 1.5;
    }
    #mw-tapetenrechner details.mw-details {
      margin-top: 14px;
      border-top: 1px solid rgba(255,255,255,.12);
      padding-top: 14px;
    }
    #mw-tapetenrechner details.mw-details summary {
      cursor: pointer;
      font-size: 13px;
      color: rgba(255,255,255,.8);
      letter-spacing: 0.4px;
      list-style: none;
      display: inline-flex;
      align-items: center;
      gap: 6px;
    }
    #mw-tapetenrechner details.mw-details summary::-webkit-details-marker { display: none; }
    #mw-tapetenrechner details.mw-details summary::after {
      content: &quot;\25BE&quot;; font-size: 11px; color: var(--mw-accent);
    }
    #mw-tapetenrechner details.mw-details[open] summary::after { content: &quot;\25B4&quot;; }
  </style>

  <h2>Calculateur de papier peint</h2>
  <p class=&quot;mw-lead&quot;>Calculez pr&amp;eacute;cis&amp;eacute;ment le nombre de rouleaux de papier peint n&amp;eacute;cessaires &amp;ndash; y compris le raccord, le type de raccord et une optimisation intelligente des chutes sur plusieurs murs.</p>

  <!-- ===================== TAPETE ===================== -->
  <div class=&quot;mw-card&quot;>
    <h3>1. Votre papier peint</h3>
    <div class=&quot;mw-grid&quot;>
      <div>
        <label for=&quot;mw-mode&quot;>Vendu en</label>
        <select id=&quot;mw-mode&quot;>
          <option value=&quot;roll&quot;>Rouleaux</option>
          <option value=&quot;meter&quot;>Au m&amp;egrave;tre (m&amp;egrave;tres lin&amp;eacute;aires)</option>
        </select>
        <span class=&quot;mw-hint&quot;>Le papier peint est-il vendu en rouleaux ou au m&amp;egrave;tre&amp;nbsp;?</span>
      </div>
      <div id=&quot;mw-roll-length-wrap&quot;>
        <label for=&quot;mw-roll-length&quot;>Longueur du rouleau</label>
        <input type=&quot;number&quot; id=&quot;mw-roll-length&quot; min=&quot;0.1&quot; step=&quot;0.1&quot; value=&quot;10&quot;>
        <span class=&quot;mw-hint&quot;>en m&amp;egrave;tres (par d&amp;eacute;faut&amp;nbsp;: 10 m)</span>
      </div>
      <div>
        <label for=&quot;mw-roll-width&quot; id=&quot;mw-roll-width-label&quot;>Largeur du rouleau</label>
        <input type=&quot;number&quot; id=&quot;mw-roll-width&quot; min=&quot;1&quot; step=&quot;1&quot; value=&quot;50&quot;>
        <span class=&quot;mw-hint&quot;>en centim&amp;egrave;tres (p. ex. 50, 53, 70, 100)</span>
      </div>
      <div>
        <label for=&quot;mw-rapport&quot;>Raccord (motif)</label>
        <input type=&quot;text&quot; inputmode=&quot;decimal&quot; id=&quot;mw-rapport&quot; value=&quot;0&quot;>
        <span class=&quot;mw-hint&quot;>en centim&amp;egrave;tres &amp;ndash; n'indiquez que le raccord (p. ex. 200)&amp;nbsp;; 0 si uni</span>
      </div>
      <div>
        <label for=&quot;mw-match&quot;>Type de raccord</label>
        <select id=&quot;mw-match&quot;>
          <option value=&quot;free&quot;>Raccord libre / sans motif</option>
          <option value=&quot;straight&quot;>Raccord droit</option>
          <option value=&quot;offset&quot;>Raccord saut&amp;eacute; (&amp;frac12; raccord)</option>
        </select>
        <span class=&quot;mw-hint&quot;>G&amp;eacute;n&amp;eacute;ralement indiqu&amp;eacute; sur l'&amp;eacute;tiquette du papier peint</span>
      </div>
      <div>
        <label for=&quot;mw-overlap&quot;>Surplus de coupe par l&amp;eacute;</label>
        <input type=&quot;number&quot; id=&quot;mw-overlap&quot; min=&quot;0&quot; step=&quot;1&quot; value=&quot;10&quot;>
        <span class=&quot;mw-hint&quot;>en centim&amp;egrave;tres (par d&amp;eacute;faut&amp;nbsp;: 10 cm pour plafond / plinthe)</span>
      </div>
    </div>
  </div>

  <!-- ===================== W&amp;Auml;NDE ===================== -->
  <div class=&quot;mw-card&quot;>
    <div class=&quot;mw-row-head&quot;>
      <h3>2. Vos murs</h3>
      <button type=&quot;button&quot; class=&quot;mw-btn mw-btn-ghost&quot; id=&quot;mw-add-wall&quot;>+ Ajouter un mur</button>
    </div>
    <div id=&quot;mw-walls&quot;></div>
  </div>

  <!-- ===================== ACTIONS ===================== -->
  <div class=&quot;mw-actions&quot;>
    <button type=&quot;button&quot; class=&quot;mw-btn&quot; id=&quot;mw-calc&quot;>Calculer le besoin</button>
    <button type=&quot;button&quot; class=&quot;mw-btn mw-btn-ghost&quot; id=&quot;mw-reset&quot;>R&amp;eacute;initialiser</button>
  </div>

  <!-- ===================== RESULT ===================== -->
  <div id=&quot;mw-output&quot;></div>

  <p class=&quot;mw-foot-note&quot;>
    Remarque&amp;nbsp;: ce calculateur fournit une estimation soign&amp;eacute;e sur la base de vos indications. Pour les papiers peints tr&amp;egrave;s motiv&amp;eacute;s ou particuli&amp;egrave;rement pr&amp;eacute;cieux, nous recommandons de pr&amp;eacute;voir un rouleau de r&amp;eacute;serve suppl&amp;eacute;mentaire. Pour une recommandation ferme, veuillez contacter notre support.
  </p>

  <script>
  (function () {
    // Chaines UI (encodage sur).
    var T = {
      wand:           &quot;Mur&quot;,
      wandEntfernen:  &quot;Supprimer le mur&quot;,
      wandHinzu:      &quot;+ Ajouter un mur&quot;,
      wandbreite:     &quot;Largeur du mur&quot;,
      wandhoehe:      &quot;Hauteur du mur&quot;,
      bezeichnung:    &quot;Désignation (facultatif)&quot;,
      placeholderName:&quot;p. ex. Salon sud&quot;,
      aussparungen:   &quot;Ouvertures (portes / fenêtres) \u2013 facultatif&quot;,
      addOpening:     &quot;+ Ajouter porte / fenêtre&quot;,
      breite:         &quot;Largeur&quot;,
      hoehe:          &quot;Hauteur&quot;,
      rmOpening:      &quot;Supprimer l'ouverture&quot;,
      errRoll:        &quot;Veuillez indiquer une longueur et une largeur de rouleau valides.&quot;,
      errWalls:       &quot;Veuillez ajouter au moins un mur.&quot;,
      errWallVals:    &quot;Veuillez indiquer la largeur et la hauteur pour {name}.&quot;,
      errStripTooLong:&quot;Un lé ({len} m) est plus long que la longueur de votre rouleau ({roll} m). Veuillez vérifier la hauteur du mur, le raccord et la longueur du rouleau.&quot;,
      tHead: {
        wall: &quot;Mur&quot;, area: &quot;Surface nette&quot;, strips: &quot;Lés&quot;,
        stripLen: &quot;Longueur de lé&quot;, total: &quot;Papier peint nécessaire&quot;
      },
      meta: {
        area:  &quot;Surface tapissée (nette)&quot;,
        used:  &quot;Papier peint réellement nécessaire&quot;,
        waste: &quot;Chute / reste&quot;
      },
      result:        &quot;Votre besoin en papier peint&quot;,
      rollsLabel:    &quot;rouleau{x} nécessaire{s}&quot;,
      matchFree:     &quot;Raccord libre&quot;,
      matchStraight: &quot;Raccord droit&quot;,
      matchOffset:   &quot;Raccord sauté&quot;,
      schnittplan:   &quot;Plan de coupe détaillé \u2013 quel lé provient de quel rouleau ?&quot;,
      rolle:         &quot;Rouleau&quot;,
      verbraucht:    &quot;Utilisé&quot;,
      rest:          &quot;Reste&quot;,
      bahnen:        &quot;Lés&quot;,
      aussparung:    &quot;ouverture&quot;,
      aussparungen2: &quot;ouvertures&quot;,
      meterBezug:    &quot;Au mètre&quot;,
      mLabel:        &quot;m nécessaires&quot;,
      exakteLaenge:  &quot;Longueur exacte&quot;,
      bestellmenge:  &quot;Quantité à commander (arrondie)&quot;,
      meterHinweis:  &quot;Pour le papier peint au mètre, la longueur totale de tous les lés est additionnée et arrondie au mètre supérieur.&quot;,
      errWidth:      &quot;Veuillez indiquer une largeur de lé valide.&quot;,
      bahnbreite:    &quot;Largeur de lé&quot;,
      rollenbreite:  &quot;Largeur du rouleau&quot;
    };

    var root = document.getElementById('mw-tapetenrechner');
    var wallsEl = root.querySelector('#mw-walls');
    var outputEl = root.querySelector('#mw-output');
    var wallSeq = 0;

    var modeEl = root.querySelector('#mw-mode');
    var rollLenWrap = root.querySelector('#mw-roll-length-wrap');
    var rollWidthLabel = root.querySelector('#mw-roll-width-label');
    function updateMode() {
      var meter = modeEl.value === 'meter';
      rollLenWrap.style.display = meter ? 'none' : '';
      rollWidthLabel.textContent = meter ? T.bahnbreite : T.rollenbreite;
    }
    modeEl.addEventListener('change', updateMode);

    function addWall(prefill) {
      wallSeq++;
      var w = document.createElement('div');
      w.className = 'mw-wall';
      w.dataset.wallId = wallSeq;
      w.innerHTML =
        '<div class=&quot;mw-row-head&quot;>' +
          '<h4>' + T.wand + ' <span class=&quot;mw-wall-num&quot;>' + (wallsEl.children.length + 1) + '</span></h4>' +
          '<button type=&quot;button&quot; class=&quot;mw-btn-icon&quot; title=&quot;' + T.wandEntfernen + '&quot; data-action=&quot;remove-wall&quot;>\u00d7</button>' +
        '</div>' +
        '<div class=&quot;mw-grid-3&quot;>' +
          '<div>' +
            '<label>' + T.wandbreite + '</label>' +
            '<input type=&quot;number&quot; class=&quot;mw-wall-width&quot; min=&quot;1&quot; step=&quot;1&quot; placeholder=&quot;cm&quot; value=&quot;' + (prefill &amp;&amp; prefill.width ? prefill.width : '') + '&quot;>' +
            '<span class=&quot;mw-hint&quot;>in cm</span>' +
          '</div>' +
          '<div>' +
            '<label>' + T.wandhoehe + '</label>' +
            '<input type=&quot;number&quot; class=&quot;mw-wall-height&quot; min=&quot;1&quot; step=&quot;1&quot; placeholder=&quot;cm&quot; value=&quot;' + (prefill &amp;&amp; prefill.height ? prefill.height : '') + '&quot;>' +
            '<span class=&quot;mw-hint&quot;>in cm</span>' +
          '</div>' +
          '<div>' +
            '<label>' + T.bezeichnung + '</label>' +
            '<input type=&quot;text&quot; class=&quot;mw-wall-name&quot; placeholder=&quot;' + T.placeholderName + '&quot;>' +
          '</div>' +
        '</div>' +
        '<div class=&quot;mw-openings&quot;>' +
          '<div class=&quot;mw-openings-head&quot;>' + T.aussparungen + '</div>' +
          '<div class=&quot;mw-openings-list&quot;></div>' +
          '<button type=&quot;button&quot; class=&quot;mw-btn-link&quot; data-action=&quot;add-opening&quot;>' + T.addOpening + '</button>' +
        '</div>';
      wallsEl.appendChild(w);
      renumberWalls();
    }

    function addOpening(wallEl, prefill) {
      var list = wallEl.querySelector('.mw-openings-list');
      var o = document.createElement('div');
      o.className = 'mw-opening';
      o.innerHTML =
        '<div>' +
          '<label>' + T.breite + '</label>' +
          '<input type=&quot;number&quot; class=&quot;mw-op-width&quot; min=&quot;1&quot; step=&quot;1&quot; placeholder=&quot;cm&quot; value=&quot;' + (prefill &amp;&amp; prefill.width ? prefill.width : '') + '&quot;>' +
        '</div>' +
        '<div>' +
          '<label>' + T.hoehe + '</label>' +
          '<input type=&quot;number&quot; class=&quot;mw-op-height&quot; min=&quot;1&quot; step=&quot;1&quot; placeholder=&quot;cm&quot; value=&quot;' + (prefill &amp;&amp; prefill.height ? prefill.height : '') + '&quot;>' +
        '</div>' +
        '<button type=&quot;button&quot; class=&quot;mw-btn-icon&quot; title=&quot;' + T.rmOpening + '&quot; data-action=&quot;remove-opening&quot;>\u00d7</button>';
      list.appendChild(o);
    }

    function renumberWalls() {
      var nodes = wallsEl.children;
      for (var i = 0; i < nodes.length; i++) {
        nodes[i].querySelector('.mw-wall-num').textContent = i + 1;
      }
    }

    root.querySelector('#mw-add-wall').addEventListener('click', function () { addWall(); });

    wallsEl.addEventListener('click', function (e) {
      var btn = e.target.closest('button[data-action]');
      if (!btn) return;
      var action = btn.dataset.action;
      var wallEl = btn.closest('.mw-wall');
      if (action === 'remove-wall') {
        wallEl.remove();
        renumberWalls();
      } else if (action === 'add-opening') {
        addOpening(wallEl);
      } else if (action === 'remove-opening') {
        btn.closest('.mw-opening').remove();
      }
    });

    root.querySelector('#mw-reset').addEventListener('click', function () {
      wallsEl.innerHTML = '';
      outputEl.innerHTML = '';
      addWall();
    });

    root.querySelector('#mw-calc').addEventListener('click', calculate);

    function readNum(el, fallback) {
      var v = parseFloat((el.value || '').toString().replace(',', '.'));
      return isNaN(v) ? fallback : v;
    }
    function showError(msg) {
      outputEl.innerHTML = '<div class=&quot;mw-error-box&quot;>' + msg + '</div>';
    }
    function escapeHtml(str) {
      return String(str).replace(/[&amp;<>&quot;']/g, function (c) {
        return ({ '&amp;':'&amp;amp;','<':'&amp;lt;','>':'&amp;gt;','&quot;':'&amp;quot;',&quot;'&quot;:'&amp;#39;' })[c];
      });
    }

    function calculate() {
      var mode        = modeEl.value;
      var rollLengthM = readNum(root.querySelector('#mw-roll-length'), 0);
      var rollWidth   = readNum(root.querySelector('#mw-roll-width'), 0);
      var rapport     = Math.max(0, readNum(root.querySelector('#mw-rapport'), 0));
      var match       = root.querySelector('#mw-match').value;
      var overlap     = Math.max(0, readNum(root.querySelector('#mw-overlap'), 0));

      if (rollWidth <= 0 || (mode === 'roll' &amp;&amp; rollLengthM <= 0)) {
        showError(mode === 'meter' ? T.errWidth : T.errRoll);
        return;
      }
      var rollLength = (mode === 'meter') ? Infinity : rollLengthM * 100;

      var wallEls = [].slice.call(wallsEl.children);
      if (wallEls.length === 0) {
        showError(T.errWalls);
        return;
      }

      var walls = [];
      for (var i = 0; i < wallEls.length; i++) {
        var el = wallEls[i];
        var wWidth  = readNum(el.querySelector('.mw-wall-width'), 0);
        var wHeight = readNum(el.querySelector('.mw-wall-height'), 0);
        var wName   = (el.querySelector('.mw-wall-name').value || '').trim() || (T.wand + ' ' + (i + 1));
        if (wWidth <= 0 || wHeight <= 0) {
          showError(T.errWallVals.replace('{name}', wName));
          return;
        }
        var openings = [];
        el.querySelectorAll('.mw-opening').forEach(function (op) {
          var oW = readNum(op.querySelector('.mw-op-width'), 0);
          var oH = readNum(op.querySelector('.mw-op-height'), 0);
          if (oW > 0 &amp;&amp; oH > 0) openings.push({ width: oW, height: oH });
        });
        walls.push({ name: wName, width: wWidth, height: wHeight, openings: openings });
      }

      // Calcul des les par mur
      var stripsAll = [];
      walls.forEach(function (wall) {
        var stripsCount = Math.ceil(wall.width / rollWidth);
        for (var k = 0; k < stripsCount; k++) {
          var stripLen;
          if (match === 'free' || rapport <= 0) {
            stripLen = wall.height + overlap;
          } else if (match === 'straight') {
            stripLen = Math.ceil((wall.height + overlap) / rapport) * rapport;
          } else {
            // Versetzter Ansatz (Halbversatz): jede Bahn wird wie beim geraden
            // Ansatz auf ein volles Vielfaches des Rapports aufgerundet. Da sich
            // das Muster von Bahn zu Bahn um einen halben Rapport verschiebt,
            // braucht nur JEDE ZWEITE Bahn zusaetzlich einen halben Rapport
            // Zuschlag - nicht jede Bahn.
            var base = Math.ceil((wall.height + overlap) / rapport) * rapport;
            stripLen = (k % 2 === 1) ? base + (rapport / 2) : base;
          }
          if (stripLen > rollLength) {
            stripsAll.push({ tooLong: true, wall: wall.name, length: stripLen });
          } else {
            stripsAll.push({ wall: wall.name, idx: k + 1, length: stripLen });
          }
        }
      });

      var tooLong = stripsAll.find(function (s) { return s.tooLong; });
      if (tooLong) {
        showError(T.errStripTooLong
          .replace('{len}', (tooLong.length / 100).toFixed(2))
          .replace('{roll}', (rollLength / 100).toFixed(2)));
        return;
      }

      // ============ METERWARE ============
      if (mode === 'meter') {
        var perWallM = walls.map(function (w) {
          var ws = stripsAll.filter(function (s) { return s.wall === w.name; });
          var tl = ws.reduce(function (s, x) { return s + x.length; }, 0);
          var wa = (w.width * w.height) / 10000;
          var oa = w.openings.reduce(function (s, o) { return s + (o.width * o.height) / 10000; }, 0);
          return {
            name: w.name,
            stripsCount: ws.length,
            stripLengthCm: ws[0] ? ws[0].length : 0,
            stripLengthVaries: ws.some(function (s) { return s.length !== ws[0].length; }),
            totalLenM: tl / 100,
            netAreaM2: Math.max(0, wa - oa),
            openingsCount: w.openings.length
          };
        });
        var mUsedM = stripsAll.reduce(function (s, x) { return s + x.length; }, 0) / 100;
        var mOrderM = Math.ceil(mUsedM);
        var mNetArea = perWallM.reduce(function (s, w) { return s + w.netAreaM2; }, 0);
        var mMatch = match === 'free' ? T.matchFree : (match === 'straight' ? T.matchStraight : T.matchOffset);
        var mRows = perWallM.map(function (w) {
          var openTxt = w.openingsCount
            ? ' <span style=&quot;color:rgba(255,255,255,.5);font-size:11px&quot;>(' + w.openingsCount + ' ' + (w.openingsCount > 1 ? T.aussparungen2 : T.aussparung) + ')</span>'
            : '';
          return '<tr>' +
            '<td>' + escapeHtml(w.name) + openTxt + '</td>' +
            '<td class=&quot;num&quot;>' + w.netAreaM2.toFixed(2) + ' m²</td>' +
            '<td class=&quot;num&quot;>' + w.stripsCount + '</td>' +
            '<td class=&quot;num&quot;>' + (w.stripLengthVaries ? '~' : '') + (w.stripLengthCm / 100).toFixed(2) + ' m</td>' +
            '<td class=&quot;num&quot;>' + w.totalLenM.toFixed(2) + ' m</td>' +
          '</tr>';
        }).join('');
        outputEl.innerHTML =
          '<div class=&quot;mw-result&quot;>' +
            '<h3>' + T.result + '</h3>' +
            '<div class=&quot;mw-result-sub&quot;>' + mMatch + (rapport > 0 ? ' &amp;middot; Raccord ' + rapport + ' cm' : '') + ' &amp;middot; ' + T.meterBezug + ' &amp;middot; ' + T.bahnbreite + ' ' + rollWidth + ' cm</div>' +
            '<div class=&quot;mw-result-big&quot;>' + mOrderM + '<small>' + T.mLabel + '</small></div>' +
            '<table>' +
              '<thead><tr>' +
                '<th>' + T.tHead.wall + '</th>' +
                '<th class=&quot;num&quot;>' + T.tHead.area + '</th>' +
                '<th class=&quot;num&quot;>' + T.tHead.strips + '</th>' +
                '<th class=&quot;num&quot;>' + T.tHead.stripLen + '</th>' +
                '<th class=&quot;num&quot;>' + T.tHead.total + '</th>' +
              '</tr></thead>' +
              '<tbody>' + mRows + '</tbody>' +
            '</table>' +
            '<div class=&quot;mw-result-meta&quot;>' +
              '<div><div class=&quot;mw-meta-label&quot;>' + T.meta.area + '</div><div class=&quot;mw-meta-value&quot;>' + mNetArea.toFixed(2) + ' m²</div></div>' +
              '<div><div class=&quot;mw-meta-label&quot;>' + T.exakteLaenge + '</div><div class=&quot;mw-meta-value&quot;>' + mUsedM.toFixed(2) + ' m</div></div>' +
              '<div><div class=&quot;mw-meta-label&quot;>' + T.bestellmenge + '</div><div class=&quot;mw-meta-value&quot;>' + mOrderM + ' m</div></div>' +
            '</div>' +
            '<p style=&quot;margin-top:16px;font-size:12px;color:rgba(255,255,255,.6);line-height:1.5;&quot;>' + T.meterHinweis + '</p>' +
          '</div>';
        if (outputEl.scrollIntoView) { outputEl.scrollIntoView({ behavior: 'smooth', block: 'start' }); }
        return;
      }

      // Bin packing (first-fit decreasing) -> optimisation des chutes
      var sorted = stripsAll.slice().sort(function (a, b) { return b.length - a.length; });
      var rolls = [];
      sorted.forEach(function (strip) {
        var placed = false;
        for (var r = 0; r < rolls.length; r++) {
          if (rolls[r].remaining + 1e-6 >= strip.length) {
            rolls[r].remaining -= strip.length;
            rolls[r].strips.push(strip);
            placed = true;
            break;
          }
        }
        if (!placed) {
          rolls.push({ remaining: rollLength - strip.length, strips: [strip] });
        }
      });

      // Detail par mur
      var perWall = walls.map(function (w) {
        var wallStrips = stripsAll.filter(function (s) { return s.wall === w.name; });
        var totalLen = wallStrips.reduce(function (s, x) { return s + x.length; }, 0);
        var wallArea = (w.width * w.height) / 10000;
        var openingsArea = w.openings.reduce(function (s, o) { return s + (o.width * o.height) / 10000; }, 0);
        return {
          name: w.name,
          stripsCount: wallStrips.length,
          stripLengthCm: wallStrips[0] ? wallStrips[0].length : 0,
          stripLengthVaries: wallStrips.some(function (s) { return s.length !== wallStrips[0].length; }),
          totalLenM: totalLen / 100,
          netAreaM2: Math.max(0, wallArea - openingsArea),
          openingsCount: w.openings.length
        };
      });

      var totalRolls = rolls.length;
      var totalUsedM = stripsAll.reduce(function (s, x) { return s + x.length; }, 0) / 100;
      var totalAvailableM = totalRolls * rollLengthM;
      var wasteM = totalAvailableM - totalUsedM;
      var totalNetArea = perWall.reduce(function (s, w) { return s + w.netAreaM2; }, 0);

      var matchLabel = match === 'free' ? T.matchFree : (match === 'straight' ? T.matchStraight : T.matchOffset);

      var wallRows = perWall.map(function (w) {
        var openTxt = w.openingsCount
          ? ' <span style=&quot;color:rgba(255,255,255,.5);font-size:11px&quot;>(' + w.openingsCount + ' ' + (w.openingsCount > 1 ? T.aussparungen2 : T.aussparung) + ')</span>'
          : '';
        return '<tr>' +
          '<td>' + escapeHtml(w.name) + openTxt + '</td>' +
          '<td class=&quot;num&quot;>' + w.netAreaM2.toFixed(2) + ' m\u00b2</td>' +
          '<td class=&quot;num&quot;>' + w.stripsCount + '</td>' +
          '<td class=&quot;num&quot;>' + (w.stripLengthVaries ? '~' : '') + (w.stripLengthCm / 100).toFixed(2) + ' m</td>' +
          '<td class=&quot;num&quot;>' + w.totalLenM.toFixed(2) + ' m</td>' +
        '</tr>';
      }).join('');

      var rollDetails = rolls.map(function (r, i) {
        return '<tr>' +
          '<td>' + T.rolle + ' ' + (i + 1) + '</td>' +
          '<td class=&quot;num&quot;>' + r.strips.length + '</td>' +
          '<td class=&quot;num&quot;>' + ((rollLength - r.remaining) / 100).toFixed(2) + ' m</td>' +
          '<td class=&quot;num&quot;>' + (r.remaining / 100).toFixed(2) + ' m</td>' +
        '</tr>';
      }).join('');

      var rollsLabel = T.rollsLabel.replace('{x}', totalRolls === 1 ? '' : 'x').replace('{s}', totalRolls === 1 ? '' : 's');

      outputEl.innerHTML =
        '<div class=&quot;mw-result&quot;>' +
          '<h3>' + T.result + '</h3>' +
          '<div class=&quot;mw-result-sub&quot;>' + matchLabel + (rapport > 0 ? ' &amp;middot; Raccord ' + rapport + ' cm' : '') + ' &amp;middot; Rouleau ' + rollWidth + ' cm \u00d7 ' + rollLengthM + ' m</div>' +
          '<div class=&quot;mw-result-big&quot;>' + totalRolls + '<small>' + rollsLabel + '</small></div>' +
          '<table>' +
            '<thead><tr>' +
              '<th>' + T.tHead.wall + '</th>' +
              '<th class=&quot;num&quot;>' + T.tHead.area + '</th>' +
              '<th class=&quot;num&quot;>' + T.tHead.strips + '</th>' +
              '<th class=&quot;num&quot;>' + T.tHead.stripLen + '</th>' +
              '<th class=&quot;num&quot;>' + T.tHead.total + '</th>' +
            '</tr></thead>' +
            '<tbody>' + wallRows + '</tbody>' +
          '</table>' +
          '<div class=&quot;mw-result-meta&quot;>' +
            '<div><div class=&quot;mw-meta-label&quot;>' + T.meta.area  + '</div><div class=&quot;mw-meta-value&quot;>' + totalNetArea.toFixed(2) + ' m\u00b2</div></div>' +
            '<div><div class=&quot;mw-meta-label&quot;>' + T.meta.used  + '</div><div class=&quot;mw-meta-value&quot;>' + totalUsedM.toFixed(2)   + ' m</div></div>' +
            '<div><div class=&quot;mw-meta-label&quot;>' + T.meta.waste + '</div><div class=&quot;mw-meta-value&quot;>' + wasteM.toFixed(2)        + ' m</div></div>' +
          '</div>' +
          '<details class=&quot;mw-details&quot;>' +
            '<summary>' + T.schnittplan + '</summary>' +
            '<table>' +
              '<thead><tr>' +
                '<th>' + T.rolle + '</th>' +
                '<th class=&quot;num&quot;>' + T.bahnen + '</th>' +
                '<th class=&quot;num&quot;>' + T.verbraucht + '</th>' +
                '<th class=&quot;num&quot;>' + T.rest + '</th>' +
              '</tr></thead>' +
              '<tbody>' + rollDetails + '</tbody>' +
            '</table>' +
            '<div style=&quot;margin-top:14px; font-size:13px; color:rgba(255,255,255,.7); line-height:1.5;&quot;>' +
              rolls.map(function (r, i) {
                return '<div style=&quot;margin-bottom:6px;&quot;>' +
                  '<strong style=&quot;color:var(--mw-accent);&quot;>' + T.rolle + ' ' + (i + 1) + ':</strong> ' +
                  r.strips.map(function (s) { return escapeHtml(s.wall) + ' \u2013 Lé ' + s.idx + ' (' + (s.length / 100).toFixed(2) + ' m)'; }).join(' &amp;middot; ') +
                '</div>';
              }).join('') +
            '</div>' +
          '</details>' +
        '</div>';
      if (outputEl.scrollIntoView) { outputEl.scrollIntoView({ behavior: 'smooth', block: 'start' }); }
    }

    updateMode();
    addWall();
  })();
  </script>
</div>

  <script>
  // Ajuste la hauteur de l'iframe (possible car srcdoc est de meme origine).
  (function () {
    function mwResize() {
      try {
        if (window.frameElement) {
          window.frameElement.style.height = document.documentElement.scrollHeight + 'px';
        }
      } catch (e) {}
    }
    window.addEventListener('load', mwResize);
    window.addEventListener('resize', mwResize);
    document.addEventListener('click', function () { setTimeout(mwResize, 60); });
    document.addEventListener('input', function () { setTimeout(mwResize, 60); });
    if (window.ResizeObserver) { try { new ResizeObserver(mwResize).observe(document.documentElement); } catch (e) {} }
    setTimeout(mwResize, 200);
    setTimeout(mwResize, 800);
  })();
  </script>

</body>
</html>
"></iframe>

 

Nous nous ferons un plaisir de calculer la quantité de papier peint dont vous avez besoin.

Veuillez nous envoyer le formulaire suivant dûment rempli, nous vous répondrons dans un délai de 24 heures (du lundi au vendredi). 

 

 

- [Questions fréquentes](https://support.meinewand.com/fr/questions-fr%C3%A9quentes?hsLang=fr)
- [Papiers peints et panoramiques](https://support.meinewand.com/fr/papiers-peints-et-panoramiques?hsLang=fr#main-content)

    - [Questions générales sur les papiers peints](https://support.meinewand.com/fr/papiers-peints-et-panoramiques?hsLang=fr#questions-g%C3%A9n%C3%A9rales-sur-les-papiers-peints)
    - [Types de papiers peints](https://support.meinewand.com/fr/papiers-peints-et-panoramiques?hsLang=fr#types-de-papiers-peints)
    - [Calcul du besoin en papier peint](https://support.meinewand.com/fr/papiers-peints-et-panoramiques?hsLang=fr#calcul-du-besoin-en-papier-peint)
    - [Préparation de la surface pour la pose du papier peint](https://support.meinewand.com/fr/papiers-peints-et-panoramiques?hsLang=fr#pr%C3%A9paration-de-la-surface-pour-la-pose-du-papier-peint)
    - [Conseils pour la pose du papier peint](https://support.meinewand.com/fr/papiers-peints-et-panoramiques?hsLang=fr#conseils-pour-la-pose-du-papier-peint)
    - [Vidéos de présentation : Tapisserie](https://support.meinewand.com/fr/papiers-peints-et-panoramiques?hsLang=fr#vid%C3%A9os-de-pr%C3%A9sentation-tapisserie)
- [Peintures](https://support.meinewand.com/fr/peintures?hsLang=fr#main-content)

    - [Questions générales sur nos peintures](https://support.meinewand.com/fr/peintures?hsLang=fr#questions-g%C3%A9n%C3%A9rales-sur-nos-peintures)
    - [Choix de la peinture : quelle peinture pour quelle surface ?](https://support.meinewand.com/fr/peintures?hsLang=fr#choix-de-la-peinture-quelle-peinture-pour-quelle-surface)
    - [Préparation du support](https://support.meinewand.com/fr/peintures?hsLang=fr#pr%C3%A9paration-du-support)
    - [Traitement et conseils](https://support.meinewand.com/fr/peintures?hsLang=fr#traitement-et-conseils)
- [Peintures professionnelles de Brillux + Peintures écologiques de Kreidezeit](https://support.meinewand.com/fr/peintures-professionnelles-de-brillux-peintures-%C3%A9cologiques-de-kreidezeit?hsLang=fr#main-content)

    - [Comment choisir la bonne peinture](https://support.meinewand.com/fr/peintures-professionnelles-de-brillux-peintures-%C3%A9cologiques-de-kreidezeit?hsLang=fr#comment-choisir-la-bonne-peinture)
- [Tissus](https://support.meinewand.com/fr/tissus?hsLang=fr)
- [Terrastone](https://support.meinewand.com/fr/terrastone?hsLang=fr#main-content)

    - [Informations générales sur Terrastone](https://support.meinewand.com/fr/terrastone?hsLang=fr#informations-g%C3%A9n%C3%A9rales-sur-terrastone)
    - [Préparation de la surface pour Terrastone](https://support.meinewand.com/fr/terrastone?hsLang=fr#pr%C3%A9paration-de-la-surface-pour-terrastone)
    - [Transformation du Terrastone](https://support.meinewand.com/fr/terrastone?hsLang=fr#transformation-du-terrastone)
    - [Finitions Terrastone](https://support.meinewand.com/fr/terrastone?hsLang=fr#finitions-terrastone)
- [Décalcomanies](https://support.meinewand.com/fr/d%C3%A9calcomanies?hsLang=fr)
- [Centre d'échantillons](https://support.meinewand.com/fr/centre-d%C3%A9chantillons?hsLang=fr)
- [Centre de services](https://support.meinewand.com/fr/centre-de-services?hsLang=fr#main-content)

    - [Formulaire de service](https://support.meinewand.com/fr/centre-de-services?hsLang=fr#formulaire-de-service)
    - [Information](https://support.meinewand.com/fr/centre-de-services?hsLang=fr#information)
- [Espace clients professionnels](https://support.meinewand.com/fr/espace-clients-professionnels?hsLang=fr)

[![MEINEWAND Onlineshop](https://support.meinewand.com/hs-fs/hubfs/meinewand_logo@2x.webp?width=488&height=78&name=meinewand_logo@2x.webp "MEINEWAND Onlineshop")](https://www.meinewand.com/)

Copyright © 2026, MEINEWAND