---
title: Calcolatore carta da parati + Calcoliamo il fabbisogno di carta da parati
description: Calcolatore di carta da parati per stimare il fabbisogno e modulo per il calcolo esatto
---

[Passa al contenuto](https://support.meinewand.com/it/richiesta-di-carta-da-parati#main-content)

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

Italiano

Mostra sottomenu per le traduzioni

[![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/it)

Apri navigazione principale

Chiudi navigazione principale

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

  Italiano
  
  Mostra sottomenu per le traduzioni
- [Contattaci](https://support.meinewand.com/it/contatto)

[Contattaci](https://support.meinewand.com/it/contatto?hsLang=it)

 Salve. Come possiamo aiutarvi?

- Non sono presenti suggerimenti perché il campo di ricerca è vuoto.

1. [centro di assistenza](https://support.meinewand.com/it?hsLang=it)
2. [Centro assistenza](https://support.meinewand.com/it/centro-assistenza?hsLang=it)
3. [Moduli di servizio](https://support.meinewand.com/it/centro-assistenza?hsLang=it#moduli-di-servizio)

# Calcolatore carta da parati + Calcoliamo il fabbisogno di carta da parati

## Calcolatore di carta da parati per stimare il fabbisogno e modulo per il calcolo esatto

Ecco un calcolatore di carta da parati che ti permette di stimare il fabbisogno.  
I calcoli NON sono precisi, servono solo come stima approssimativa!

Per un calcolo preciso, contattate il nostro servizio clienti utilizzando il modulo sottostante.

[**\>\> Vai al modulo per il calcolo preciso!**](https://support.meinewand.com/it/richiesta-di-carta-da-parati#Formular-Tapetenbedarf)

<iframe title="Calcolatore di carta da parati" 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;it&quot;>
<head>
  <meta charset=&quot;utf-8&quot;>
  <meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;>
  <title>MEINEWAND Calcolatore di carta da parati</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>Calcolatore di carta da parati</h2>
  <p class=&quot;mw-lead&quot;>Calcola con precisione il numero di rotoli di carta da parati necessari &amp;ndash; inclusi rapporto, tipo di attacco e ottimizzazione intelligente degli sfridi su pi&amp;ugrave; pareti.</p>

  <!-- ===================== TAPETE ===================== -->
  <div class=&quot;mw-card&quot;>
    <h3>1. La tua carta da parati</h3>
    <div class=&quot;mw-grid&quot;>
      <div>
        <label for=&quot;mw-mode&quot;>Venduta come</label>
        <select id=&quot;mw-mode&quot;>
          <option value=&quot;roll&quot;>Rotoli</option>
          <option value=&quot;meter&quot;>Al metro (metri lineari)</option>
        </select>
        <span class=&quot;mw-hint&quot;>La carta da parati &amp;egrave; venduta a rotoli o al metro?</span>
      </div>
      <div id=&quot;mw-roll-length-wrap&quot;>
        <label for=&quot;mw-roll-length&quot;>Lunghezza del rotolo</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;>in metri (predefinito: 10 m)</span>
      </div>
      <div>
        <label for=&quot;mw-roll-width&quot; id=&quot;mw-roll-width-label&quot;>Larghezza del rotolo</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;>in centimetri (es. 50, 53, 70, 100)</span>
      </div>
      <div>
        <label for=&quot;mw-rapport&quot;>Rapporto (motivo)</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;>in centimetri &amp;ndash; inserire solo il rapporto (es. 200); 0 se tinta unita</span>
      </div>
      <div>
        <label for=&quot;mw-match&quot;>Tipo di attacco</label>
        <select id=&quot;mw-match&quot;>
          <option value=&quot;free&quot;>Attacco libero / nessun motivo</option>
          <option value=&quot;straight&quot;>Attacco dritto</option>
          <option value=&quot;offset&quot;>Attacco sfalsato (&amp;frac12; rapporto)</option>
        </select>
        <span class=&quot;mw-hint&quot;>Di solito indicato sull'etichetta della carta da parati</span>
      </div>
      <div>
        <label for=&quot;mw-overlap&quot;>Margine di taglio per telo</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;>in centimetri (predefinito: 10 cm per soffitto / battiscopa)</span>
      </div>
    </div>
  </div>

  <!-- ===================== W&amp;Auml;NDE ===================== -->
  <div class=&quot;mw-card&quot;>
    <div class=&quot;mw-row-head&quot;>
      <h3>2. Le tue pareti</h3>
      <button type=&quot;button&quot; class=&quot;mw-btn mw-btn-ghost&quot; id=&quot;mw-add-wall&quot;>+ Aggiungi parete</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;>Calcola il fabbisogno</button>
    <button type=&quot;button&quot; class=&quot;mw-btn mw-btn-ghost&quot; id=&quot;mw-reset&quot;>Reimposta</button>
  </div>

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

  <p class=&quot;mw-foot-note&quot;>
    Nota: questo calcolatore fornisce una stima accurata in base ai tuoi dati. Per carte da parati molto fantasiose o particolarmente preziose consigliamo di prevedere un rotolo di riserva aggiuntivo. Per una raccomandazione vincolante, contatta il nostro supporto.
  </p>

  <script>
  (function () {
    // Stringhe UI (codifica sicura).
    var T = {
      wand:           &quot;Parete&quot;,
      wandEntfernen:  &quot;Rimuovi parete&quot;,
      wandHinzu:      &quot;+ Aggiungi parete&quot;,
      wandbreite:     &quot;Larghezza parete&quot;,
      wandhoehe:      &quot;Altezza parete&quot;,
      bezeichnung:    &quot;Denominazione (facoltativo)&quot;,
      placeholderName:&quot;es. Soggiorno sud&quot;,
      aussparungen:   &quot;Aperture (porte / finestre) \u2013 facoltativo&quot;,
      addOpening:     &quot;+ Aggiungi porta / finestra&quot;,
      breite:         &quot;Larghezza&quot;,
      hoehe:          &quot;Altezza&quot;,
      rmOpening:      &quot;Rimuovi apertura&quot;,
      errRoll:        &quot;Inserisci una lunghezza e una larghezza del rotolo valide.&quot;,
      errWalls:       &quot;Aggiungi almeno una parete.&quot;,
      errWallVals:    &quot;Inserisci larghezza e altezza per {name}.&quot;,
      errStripTooLong:&quot;Un telo ({len} m) è più lungo della lunghezza del rotolo ({roll} m). Controlla altezza parete, rapporto e lunghezza del rotolo.&quot;,
      tHead: {
        wall: &quot;Parete&quot;, area: &quot;Superficie netta&quot;, strips: &quot;Teli&quot;,
        stripLen: &quot;Lunghezza telo&quot;, total: &quot;Carta necessaria&quot;
      },
      meta: {
        area:  &quot;Superficie tappezzata (netta)&quot;,
        used:  &quot;Carta effettivamente necessaria&quot;,
        waste: &quot;Sfrido / resto&quot;
      },
      result:        &quot;Il tuo fabbisogno di carta da parati&quot;,
      rollsLabel:    &quot;rotol{x} necessari{s}&quot;,
      matchFree:     &quot;Attacco libero&quot;,
      matchStraight: &quot;Attacco dritto&quot;,
      matchOffset:   &quot;Attacco sfalsato&quot;,
      schnittplan:   &quot;Piano di taglio dettagliato \u2013 quale telo da quale rotolo?&quot;,
      rolle:         &quot;Rotolo&quot;,
      verbraucht:    &quot;Utilizzato&quot;,
      rest:          &quot;Resto&quot;,
      bahnen:        &quot;Teli&quot;,
      aussparung:    &quot;apertura&quot;,
      aussparungen2: &quot;aperture&quot;,
      meterBezug:    &quot;Al metro&quot;,
      mLabel:        &quot;m necessari&quot;,
      exakteLaenge:  &quot;Lunghezza esatta&quot;,
      bestellmenge:  &quot;Quantità da ordinare (arrotondata)&quot;,
      meterHinweis:  &quot;Per la carta da parati al metro, la lunghezza totale di tutti i teli viene sommata e arrotondata al metro superiore.&quot;,
      errWidth:      &quot;Inserisci una larghezza del telo valida.&quot;,
      bahnbreite:    &quot;Larghezza telo&quot;,
      rollenbreite:  &quot;Larghezza del rotolo&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 });
      }

      // Calcolo dei teli per parete
      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; Rapporto ' + 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) -> ottimizzazione sfridi
      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] });
        }
      });

      // Dettaglio per parete
      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 ? 'o' : 'i').replace('{s}', totalRolls === 1 ? 'o' : '');

      outputEl.innerHTML =
        '<div class=&quot;mw-result&quot;>' +
          '<h3>' + T.result + '</h3>' +
          '<div class=&quot;mw-result-sub&quot;>' + matchLabel + (rapport > 0 ? ' &amp;middot; Rapporto ' + rapport + ' cm' : '') + ' &amp;middot; Rotolo ' + 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 Telo ' + 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>
  // Adatta l'altezza dell'iframe (possibile perche srcdoc e same-origin).
  (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>

 

 

 

Saremo lieti di calcolare la quantità di carta da parati necessaria.

Inviateci il modulo compilato e vi risponderemo entro 24 ore (dal lunedì al venerdì). 

 

 

- [Domande comuni](https://support.meinewand.com/it/domande-comuni?hsLang=it)
- [Carta da parati e carta da parati panoramiche](https://support.meinewand.com/it/carta-da-parati-e-carta-da-parati-panoramiche?hsLang=it#main-content)

    - [Domande generali sulla carta da parati](https://support.meinewand.com/it/carta-da-parati-e-carta-da-parati-panoramiche?hsLang=it#domande-generali-sulla-carta-da-parati)
    - [Tipi di carta da parati](https://support.meinewand.com/it/carta-da-parati-e-carta-da-parati-panoramiche?hsLang=it#tipi-di-carta-da-parati)
    - [Calcolo dei requisiti della carta da parati](https://support.meinewand.com/it/carta-da-parati-e-carta-da-parati-panoramiche?hsLang=it#calcolo-dei-requisiti-della-carta-da-parati)
    - [Preparazione della superficie per la carta da parati](https://support.meinewand.com/it/carta-da-parati-e-carta-da-parati-panoramiche?hsLang=it#preparazione-della-superficie-per-la-carta-da-parati)
    - [Consigli per la posa della carta da parati](https://support.meinewand.com/it/carta-da-parati-e-carta-da-parati-panoramiche?hsLang=it#consigli-per-la-posa-della-carta-da-parati)
    - [Video: Come applicare correttamente la carta da parati](https://support.meinewand.com/it/carta-da-parati-e-carta-da-parati-panoramiche?hsLang=it#video-come-applicare-correttamente-la-carta-da-parati)
- [Pitture](https://support.meinewand.com/it/pitture?hsLang=it#main-content)

    - [Domande generali sulle nostre pitture](https://support.meinewand.com/it/pitture?hsLang=it#domande-generali-sulle-nostre-pitture)
    - [Selezione della pittura: Quale pittura per quale superficie](https://support.meinewand.com/it/pitture?hsLang=it#selezione-della-pittura-quale-pittura-per-quale-superficie)
    - [Preparazione del substrato](https://support.meinewand.com/it/pitture?hsLang=it#preparazione-del-substrato)
    - [Elaborazione e consigli](https://support.meinewand.com/it/pitture?hsLang=it#elaborazione-e-consigli)
- [Pitture professionali di Brillux + Pitture ecologiche di Kreidezeit](https://support.meinewand.com/it/pitture-professionali-di-brillux-pitture-ecologiche-di-kreidezeit?hsLang=it#main-content)

    - [Come scegliere la pittura giusta](https://support.meinewand.com/it/pitture-professionali-di-brillux-pitture-ecologiche-di-kreidezeit?hsLang=it#come-scegliere-la-pittura-giusta)
- [Tessuti](https://support.meinewand.com/it/tessuti?hsLang=it)
- [Terrastone](https://support.meinewand.com/it/terrastone?hsLang=it#main-content)

    - [Informazioni generali su Terrastone](https://support.meinewand.com/it/terrastone?hsLang=it#informazioni-generali-su-terrastone)
    - [Preparazione della superficie per Terrastone](https://support.meinewand.com/it/terrastone?hsLang=it#preparazione-della-superficie-per-terrastone)
    - [Lavorazione del Terrastone](https://support.meinewand.com/it/terrastone?hsLang=it#lavorazione-del-terrastone)
    - [Terrastone Finishes](https://support.meinewand.com/it/terrastone?hsLang=it#terrastone-finishes)
- [Decalcomanie](https://support.meinewand.com/it/decalcomanie?hsLang=it)
- [Centro campioni](https://support.meinewand.com/it/centro-campioni?hsLang=it)
- [Centro assistenza](https://support.meinewand.com/it/centro-assistenza?hsLang=it#main-content)

    - [Moduli di servizio](https://support.meinewand.com/it/centro-assistenza?hsLang=it#moduli-di-servizio)
    - [Informazioni](https://support.meinewand.com/it/centro-assistenza?hsLang=it#informazioni)
- [Area clienti business](https://support.meinewand.com/it/area-clienti-business?hsLang=it)

[![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