Modulo Fattura Dinamico – Parte 1. No Code

In questa prima parte del tutorial impariamo a rendere dinamico il template della fattura utilizzando solo strumenti nativi di Excel: tabelle, menu a tendina e funzioni di ricerca.

Il file fornito è volutamente vuoto: saremo noi a popolarlo passo dopo passo.

1.1 Creare la tabella Clienti

  1. Seleziona  il foglio"Clienti"l’ e poi l'intervallo dei clienti (Come in figura) e premi Ctrl + T
  2. EN-US: Home → Format as Table
    ITA: Home → Formatta come tabella
  3. Spunta:
    EN-US: “My table has headers”
    ITA: “La tabella ha intestazioni”

ℹ️ Nota: A questo punto molti potrebbero chiedersi perché, nel tutorial, dedico così tanta attenzione alle differenze tra le versioni Italiano ed EN‑US di Excel.

La risposta è semplice: per motivi personali utilizzo da sempre Excel in lingua inglese.

Inoltre — e questo riguarda soprattutto chi proseguirà con la parte dedicata alla programmazione — è importante sapere che molte funzioni usate nel codice VBA o nelle formule internazionali mantengono i nomi inglesi.

Funzioni come INDEX + MATCH, VLOOKUP, XLOOKUP, SUMIF, IF, COUNTIF e molte altre, che vedremo più avanti, corrispondono in italiano a INDICE + CONFRONTA, CERCA.VERT, CERCA.X, SOMMA.SE, SE, CONTA.SE, ecc.

Conoscere entrambe le versioni permette di lavorare senza confusione, seguire documentazione internazionale, leggere codice VBA più facilmente e comprendere tutorial provenienti da tutto il mondo.

Di seguito tutte le tabelle comparative per le funzioni utilizzate nella parte NO - CODE

🔍 Funzioni di ricerca e riferimento

Funzioni matematiche e di calcolo

🔢 Funzioni logiche

🔤 Funzioni di testo (utili per formattare indirizzi, codici, ecc.)

📊 Funzioni per dashboard e analisi

🧮 Funzioni utili per il gestionale (numerazione, date, ecc.)

🧩 Funzioni avanzate (per utenti moderni)

 Dopo la doverosa scarrella3. posizionati in un punto qualsiasi dentro la tabella, nella scheda in alto seleziona Table Design o voce attinente nella versione Italiana.

4. Spostati in alto a sinistra  e  Rinomina la tabella in tblClienti.

1.2 Creare la tabella Prodotti

Seleziona il foglio "Prodotti"

Ripeti gli stessi passaggi e rinomina la tabella in tblProdotti.

2. Menu a tendina per selezionare il Cliente (C7)

2.1 Preparare la colonna dei nomi

Assicurati che nella tabella tblClienti la colonna "B" sia correttamente etichettata come  [RagioneSociale] ,(tutto attaccato).

2.2 Impostare la convalida  dati

Selezionare la riga da C7 a I9,  dal menù home -> Formati selezionare unisci e centra; ripetere la stessa operazione per C8:I8 e C9:I9

 

 

  1. Seleziona la cella C7.
  2. Vai su Data → Data Validation.
  3. Imposta Allow: List.
  4. Nel campo Source inserisci:
    =Clienti!$B$2:$B$27   

In questo caso(motivi didattici) ho selezionato un'intervallo piccolo, ma voi estendete anche a $B$10000, 50000 o anche più, secondo necessità.

Et Voilà, come per magia cliccando sulla freccetta si estenderà l'elenco a discesa con i nomi dei Clienti! Colgo l'occasione per farvi saper che i nomi sono fittizi(pura fantasia)!

🟦 SEZIONE 3 — Recuperare i dati del Cliente

3.1 Indirizzo (C8)

Versione moderna — XLOOKUP  =XLOOKUP(C7;tblClienti[RagioneSociale];tblClienti[Indirizzo];"Cliente Non trovato";0)    

Versione compatibile — INDEX + MATCH=INDEX(tblClienti[Indirizzo]; MATCH(C7; tblClienti[RagioneSociale]; 0))

🟦3.2 CAP + Città + Provincia in un’unica cella (C9)

XLOOKUP

=XLOOKUP(C7; tblClienti[RagioneSociale]; tblClienti[CAP]) & " " & XLOOKUP(C7; tblClienti[RagioneSociale]; tblClienti[Città]) & " (" & XLOOKUP(C7; tblClienti[RagioneSociale]; tblClienti[Provincia]) & ")"

In questa formula utilizziamo tre funzioni XLOOKUP per recuperare tre informazioni diverse dalla tabella clienti: CAP, Città e Provincia.

Ogni XLOOKUP restituisce un singolo valore, quindi per costruire una stringa completa come “38100 Trento (TN)” dobbiamo eseguire tre ricerche separate e poi concatenarle.

La chiave di ricerca è sempre la Ragione Sociale selezionata in C7.

La concatenazione con & ci permette di unire i risultati e aggiungere spazi e parentesi per ottenere un formato leggibile e professionale(Vedi figura sotto).

INDEX + MATCH -> INDICE + CONFRONTA per le versioni italiane

=INDEX(tblClienti[CAP]; MATCH(C7; tblClienti[RagioneSociale]; 0)) & " " & INDEX(tblClienti[Città]; MATCH(C7; tblClienti[Nome]; 0)) & " (" & INDEX(tblClienti[Provincia]; MATCH(C7; tblClienti[RagioneSociale]; 0)) & ")"