Quando conviene sostituire Excel con un gestionale?
Con 18 ore a settimana il file costa 51.472 euro l'anno. A otto anni: 509.442 euro restando, 280.084 euro con un gestionale in abbonamento, 297.921 euro con un programma su misura. Se il processo è tuo, il gestionale che non calza costa più di un Excel ordinato.

Una distribuzione di materiali elettrici di Brescia gestisce ordini, magazzino e fatturazione con un file Excel nato nel 2014. Oggi ha quarantuno fogli, sei persone che lo toccano ogni giorno e due macro scritte da un ragioniere che è andato in pensione. Funziona. Poi, in un solo trimestre, succedono tre cose. Un ordine da 14.000 euro parte con lo sconto sbagliato perché qualcuno ha trascinato una formula di una riga. Il file, diventato troppo pesante, si corrompe un lunedì mattina e il backup del venerdì perde due giorni di lavoro. E un cliente grosso chiede di vedere in tempo reale quanto magazzino c'è, cosa che il file, aperto da una persona alla volta, non può dare.
Il titolare cerca "sostituire Excel con un gestionale" e trova due tipi di pagine. Quelle dei venditori di gestionali, che promettono di risolvere tutto con un abbonamento. E quelle degli informatici, che dicono di scrivere un programma su misura. Nessuno dei due mostra il conto, e nessuno ammette che per molte aziende la risposta giusta è lasciare Excel dov'è, con qualche accorgimento.
Questo articolo ti dice quando Excel ha smesso di bastare, quali sono le quattro strade che hai davvero (restare, ordinare il file, comprare un gestionale, costruirne uno su misura) e quanto costa ciascuna in tre, cinque e otto anni per un'azienda tipo. Trovi un numero solo che decide quasi tutto, le ore a settimana che le persone perdono dentro il file, e una seconda domanda che decide tra comprare e costruire: il tuo processo è standard o è tuo?
Dentro ci sono il conto in euro con ogni ipotesi scritta in chiaro, il codice C# che ho compilato e provato per davvero (un censimento automatico del file Excel e la regola dello sconto portata fuori da una macro in una classe con i suoi test), il modo di decidere che cosa fare delle macro VBA, e i passi per cambiare strumento senza fermare gli ordini nemmeno un giorno.
Una premessa onesta. Dal 1999 progetto software per aziende, e ho costruito e venduto un gestionale legale multi-tenant. Non ti vendo uno strumento: il caso che uso è un'azienda tipo, costruita con ordini di grandezza di settore e non il caso di un cliente reale. I numeri sono ipotesi scritte in chiaro, servono a farti rifare il conto con i tuoi.
Perché Excel va bene finché non va più bene?
Excel è il miglior strumento di sviluppo software che esista per chi non è uno sviluppatore. Permette a un responsabile di magazzino di costruire in una sera un programma che un'azienda di software chiederebbe tre settimane per scrivere. Non c'è un'installazione, non c'è un fornitore, non c'è un preventivo. Il dato si inserisce, la formula lo calcola, il grafico si vede. Per questo l'intero mondo delle piccole e medie imprese ci gira sopra, e per questo non va trattato con disprezzo.
Il problema non è Excel. Il problema è che un file Excel diventa un programma senza che nessuno decida che lo è. Ha dati, regole, persone che lo usano, scadenze che dipendono da lui. Ma non ha le cose che ha un programma: nessuno controlla chi cambia che cosa, nessuno prova le formule prima di usarle, due persone non possono lavorarci insieme senza pestarsi i piedi, e quando la persona che l'ha costruito se ne va, la conoscenza se ne va con lei.
Le aziende lo scoprono sempre nello stesso modo: non per un ragionamento, ma per un incidente. Lo sconto sbagliato, il file corrotto, il dato che non torna fra due fogli. L'incidente non è la causa, è il momento in cui un costo che c'era già diventa visibile. Per questo la prima domanda utile non è "che gestionale compro?" ma "quanto mi costa già oggi questo file?". Fino a quando non rispondi a questa, qualunque preventivo ti sembrerà troppo alto o troppo basso, perché non hai nulla con cui confrontarlo.
C'è poi un fatto che i venditori di gestionali non ti dicono: un file Excel ordinato bene, con tabelle vere, convalide sui campi, una sola copia condivisa e qualche regola scritta, regge a lungo. In questo articolo vedrai che esiste una soglia sotto la quale restare è la scelta giusta, e che molte aziende la superano senza accorgersene.
Quali sono i sintomi di un file che ha superato il suo mestiere?
Non serve uno specialista per accorgersene. Bastano sette domande, e se rispondi sì a tre o più, il file sta già facendo il lavoro di un programma.
- Più di una persona lo modifica ogni giorno. Quando le persone sono due o tre, nasce la regola non scritta "prima di aprirlo chiedi se è libero". Quando sono sei, nascono le copie: "ordini_FINALE_def2.xlsx". La verità si divide in file diversi.
- Ci sono fogli che nessuno sa più a cosa servono. Un foglio chiamato "Appoggio2019" o "Prova" che alimenta altre formule è una scatola chiusa. Nessuno lo cancella perché nessuno sa che cosa si rompe.
- Le formule contengono numeri scritti a mano. Un 0,92 dentro una formula è una regola commerciale nascosta. Quando lo sconto cambia, bisogna trovare tutte le formule in cui compare, e se ne trovi nove su dieci, la decima è un errore che esce a fine mese.
- Esistono collegamenti ad altri file. Una formula che legge un valore da un altro file su un computer o una cartella di rete smette di funzionare quando il file si sposta, senza avvisare: continua a mostrare l'ultimo valore che aveva.
- Ci sono macro che solo una persona capisce. Il VBA è un linguaggio vero. Un modulo di quattrocento righe scritto da qualcuno che non c'è più è software da mantenere senza documentazione e senza prove.
- Si riconcilia a mano. Qualcuno copia i dati dal gestionale di contabilità nel file, o dal file nel gestionale, e poi controlla che i totali tornino. Ogni copia è una possibilità di errore e ogni controllo è tempo.
- Qualcuno ha chiesto "vedere i dati da fuori". Un cliente, un agente, un collega in trasferta. Un file Excel aperto su un computer non si vede da fuori, e quando lo mandi per posta nasce una seconda copia nel momento stesso in cui lo spedisci.
Il numero di sì non è il numero che decide, ma serve a capire dove sei. Con uno o due sì il file è sano e basta ordinarlo. Con tre o quattro è tempo di fare il conto. Con cinque o più il conto lo stai già pagando, e il punto è soltanto quanto.
Quanto costa ogni anno un Excel che fa il lavoro di un gestionale?
Costa in quattro modi, e solo uno compare in una fattura. Gli altri tre stanno nel tempo delle persone, negli errori e nel rischio.
Ti mostro il conto per un'azienda tipo, e ti dico subito come ricalcolarlo con i tuoi dati. L'azienda tipo ha sei persone che lavorano nel file, un costo orario interno di 32 euro (lo stipendio lordo più i contributi, diviso per le ore effettivamente lavorate), e una quantità di tempo perso che chiamo "ore di attrito": quelle che si spendono a copiare un dato da un posto all'altro, a controllare che un totale torni, a cercare l'ultima versione, a rifare una formula che si è rotta. Per questa azienda sono 18 ore a settimana in tutto, tre a testa.

| Voce | Ipotesi | Costo annuo |
|---|---|---|
| Ore di attrito | 18 ore a settimana, 47 settimane, 32 euro l'ora | 27.072 euro |
| Errori | 16 errori l'anno che costano in media 1.100 euro (sconto sbagliato, ordine duplicato, spedizione errata) | 17.600 euro |
| Manutenzione delle macro VBA | 8 giornate di lavoro l'anno a 600 euro | 4.800 euro |
| Rischio di fermo | 8% di probabilità l'anno di un blocco che costa 25.000 euro | 2.000 euro |
| Totale | il costo che oggi nessuno vede in una voce di bilancio | 51.472 euro |
Tre note sul conto, perché ciascuna è un punto in cui chi vende ti inganna e un punto in cui ti puoi ingannare da solo.
La prima. Il costo degli errori è la voce più difficile da stimare e la più utile da misurare. Per averlo, apri la posta e il gestionale di contabilità degli ultimi dodici mesi e cerca note di credito, spedizioni rifatte, fatture corrette. Per ogni caso chiediti: l'errore è nato dal fatto che un dato è stato copiato a mano o che una regola era sbagliata nel file? Se sì, è un errore di Excel. In molte aziende il numero reale è più alto di quello che si ricorda, perché gli errori piccoli si sistemano al telefono e non lasciano traccia.
La seconda. Le ore di attrito non valgono tutte 32 euro. Se una persona risparmia dieci minuti al giorno, quei dieci minuti non diventano un'ora di lavoro vendibile, diventano tre pause caffè in più. Nei conti che seguono le ore risparmiate valgono il 60% del loro costo, perché quasi metà del tempo liberato si perde in lavoro che sarebbe comunque finito e nessuno lo rimette a frutto. Se la tua azienda è piena di arretrato e ogni ora libera si trasforma subito in lavoro fatto, usa il 100% e il conto migliora per le strade nuove. È un numero da dichiarare, non da nascondere.
La terza. Il rischio di fermo sembra una voce da assicuratore, ed è la più sottovalutata. Un file che vive su un solo computer, o su una cartella condivisa senza copie versionate, è un unico punto di rottura. Non è raro: un file Excel molto pesante con tante formule collegate si corrompe e si apre solo in modalità di ripristino. Quello che si perde dipende dall'ultimo salvataggio buono, e i salvataggi buoni spesso non ci sono.
Un ultimo punto prima di passare avanti: questo costo non resta fermo. Più l'azienda cresce, più ordini passano dal file, più persone ci lavorano, più errori escono. Nei conti che seguono lo faccio crescere del 6% l'anno, che è un valore prudente per un'azienda che vende più di quanto vendeva due anni fa.
Quali sono le quattro strade che hai davvero?
Davanti a un file che non regge, le strade sono quattro. Non ne esiste una quinta, per quanto un venditore la descriva con un nome diverso.
Strada A: restare dov'è
Non si tocca niente. Il file continua a vivere, con le macro e gli errori di oggi. Non costa niente di nuovo ed è la strada con cui tutte le altre vanno confrontate. Ha senso quando il costo annuale di Excel è piccolo, o quando l'azienda ha un orizzonte breve (si vende, si chiude il reparto, si cambia modello entro due o tre anni).
Strada B: ordinare Excel
Si resta in Excel, ma lo si fa funzionare da programma serio. Si trasformano gli intervalli in tabelle vere, si mettono le convalide sui campi (un cliente deve esistere, un prezzo non può essere negativo), si centralizza il file su una cartella condivisa con versioni (SharePoint o OneDrive), si porta fuori ciò che si ripete con Power Query, si cancellano i fogli morti e si mettono i numeri delle regole in un foglio di parametri invece che dentro le formule. Costa circa 6.000 euro una tantum, più 1.200 euro l'anno di cura, e riduce il tempo perso del 35% e gli errori del 40%. Non elimina le macro: le lascia, ma le documenta.
Strada C: comprare un gestionale in abbonamento
Si adotta un prodotto che esiste (un gestionale di magazzino e ordini, un ERP per piccole aziende) e si mette il proprio processo dentro il suo. Per l'azienda tipo costa circa 24.000 euro all'inizio (configurazione 9.000, migrazione dei dati 6.000, formazione 3.000, tempo interno delle persone 6.000) e 4.800 euro l'anno (dodici utenti a 400 euro l'anno). Riduce il tempo perso del 65%, gli errori del 70%, elimina le macro e quasi tutto il rischio di fermo. Ma funziona così solo se il processo dell'azienda è sostanzialmente quello che il prodotto si aspetta. Più avanti vedrai che cosa succede quando non lo è.
Strada D: costruire un programma su misura
Si scrive un programma che fa quello che fa l'azienda, nel modo in cui lo fa. Per l'azienda tipo costa circa 79.000 euro all'inizio (costruzione 62.000, avviamento 9.000, tempo interno 8.000) più il 12% della costruzione ogni anno per manutenzione e piccole modifiche, cioè 7.440 euro. Riduce il tempo perso dell'85% e gli errori dell'85%. Ha il vantaggio che si adatta al processo e non il contrario, e lo svantaggio che parte da un investimento alto e richiede un fornitore o un gruppo interno che lo mantenga negli anni. Per un confronto dettagliato di quando conviene il su misura e quando no, c'è la guida su software su misura per aziende.
Una cosa che conta e che i confronti trascurano: le strade B, C e D non sono solo diverse di prezzo, sono diverse di natura. La B non cambia strumento, cambia disciplina. La C cambia strumento e ti chiede di cambiare un po' il modo di lavorare. La D cambia strumento e ti lascia lavorare come prima. Per questo la domanda "quale è la più economica?" ha una risposta che dipende da quanto sei disposto a cambiare.
Quanto costa ogni strada in tre, cinque e otto anni?
Metto insieme tutti i numeri. Il costo totale su un orizzonte è: il costo iniziale, più per ogni anno il canone o la manutenzione, più il costo residuo del tempo perso, degli errori, delle macro e del rischio, che cresce del 6% l'anno. Per l'azienda tipo, con 18 ore di attrito a settimana e un processo che il gestionale in abbonamento copre senza forzature:

| Strada | Costo iniziale | 3 anni | 5 anni | 8 anni |
|---|---|---|---|---|
| A. Restare in Excel | 0 | 163.866 euro | 290.152 euro | 509.442 euro |
| B. Excel ordinato | 6.000 euro | 131.363 euro | 227.601 euro | 394.147 euro |
| C. Gestionale in abbonamento | 24.000 euro | 108.420 euro | 171.982 euro | 280.084 euro |
| D. Su misura | 79.000 euro | 152.593 euro | 206.987 euro | 297.921 euro |
Leggi la tabella per righe di orizzonte, non per colonne. A tre anni la strada più economica è il gestionale in abbonamento, e quella più cara dopo il restare è il su misura, che deve ancora ammortizzare i 79.000 euro iniziali. A cinque anni il su misura ha già superato l'Excel ordinato e si avvicina al gestionale. A otto anni su misura e abbonamento sono a meno di 18.000 euro di distanza, e a dieci anni si toccano: 361.897 euro contro 365.680.
La lettura più importante è un'altra. Restare in Excel è la strada più cara a tutti gli orizzonti, in questo caso. Non perché Excel sia un cattivo strumento, ma perché a 51.472 euro l'anno di attrito, rischio e errori il file sta già costando più di quello che costerebbe una via d'uscita. Questo non è vero per tutte le aziende: vale per quelle che perdono 18 ore a settimana. Fra poco vedrai da quante ore in giù restare conviene.
Le ipotesi, tutte insieme, perché si possano discutere. Costo orario interno 32 euro. Tasso di crescita del costo di attrito 6% l'anno. Valore delle ore risparmiate: 60%. Un errore costa in media 1.100 euro. Rischio di fermo 8% l'anno su 25.000 euro. Manutenzione delle macro 4.800 euro l'anno, azzerata da C e D. Le riduzioni sono: B tempo 35%, errori 40%, rischio 25%; C tempo 65%, errori 70%, rischio 90%; D tempo 85%, errori 85%, rischio 90%. Cambia un numero e il conto si sposta: è lo scopo.
Qual è il numero che decide?
Sono le ore di attrito a settimana. Non il fatturato, non il numero di dipendenti, non l'età del file. Perché sono il costo ricorrente più grande e perché si misurano in una settimana.
Per misurarle, per cinque giorni chiedi a ciascuna persona che lavora nel file di segnare ogni volta che: copia un dato da un posto a un altro, controlla un totale, cerca una versione, ripara una formula, aspetta che qualcuno liberi il file. Un segno ogni volta, con i minuti. A fine settimana somma. Non cercare precisione: ti basta sapere se sono tre ore o trenta.
Ecco come cambia il conto a cinque anni al variare delle ore, con lo stesso processo standard dell'azienda tipo:
| Ore di attrito a settimana | Costo annuo di Excel oggi | A. Restare | B. Ordinare | C. Abbonamento | D. Su misura |
|---|---|---|---|---|---|
| 3 | 14.612 euro | 82.369 | 78.768 | 70.223 | 132.581 |
| 6 | 21.324 euro | 120.205 | 106.303 | 89.459 | 146.904 |
| 12 | 36.948 euro | 208.279 | 168.812 | 131.650 | 177.410 |
| 18 | 51.472 euro | 290.152 | 227.601 | 171.982 | 206.987 |
| 30 | 81.620 euro | 460.100 | 348.900 | 254.505 | 267.070 |
I punti di incrocio, calcolati sullo stesso modello, sono questi. A cinque anni, ordinare Excel conviene rispetto al restare da 2,5 ore a settimana in su. Il gestionale in abbonamento batte il restare da 1,75 ore, e sotto quelle ore non vale la pena di cambiare nulla. Il su misura batte il restare da 8,75 ore, ma batte l'Excel ordinato solo sopra le 14 ore. Sono numeri bassi, e vale la pena capire perché.
Sono bassi perché i conti dei costi nascosti sono bassi solo in apparenza. Due ore e mezza a settimana sono 3.760 euro l'anno di ore, più gli errori che le accompagnano. E se un gestionale ti costa 4.800 euro l'anno di canone e 24.000 euro una volta sola, il pareggio arriva presto. Quello che il modello non mette è quanto costa a te cambiare abitudini, e questo lo vedi nella sezione sul processo.
Una regola che si ricorda: sotto le tre ore a settimana resta e ordina il file, tra le tre e le quindici ore compra un gestionale se il tuo processo è standard, sopra le quindici costruisci su misura se il processo è tuo. Le soglie esatte dipendono dalle tue ipotesi, ma l'ordine delle strade è robusto: sui numeri di questo modello non si inverte mai, e cambiando le ipotesi si sposta.
Come si fa il censimento del file in dieci minuti?
Prima di chiedere un preventivo, ti serve sapere che cosa hai. Un censimento del file, fatto da una persona che non lo ha costruito, fa uscire in dieci minuti le cose che nessuno ricorda: i fogli nascosti, i collegamenti a file esterni, le formule con numeri scritti dentro, le celle in errore. Lo fa un programmino di quaranta righe. Ho usato la libreria ClosedXML, che legge i file .xlsx senza aver bisogno di Excel installato.
Il progetto è una console con un solo pacchetto, ClosedXML. Questo è il cuore, che ho compilato e provato su un file di prova con fogli nascosti, riferimenti esterni e costanti nelle formule:
using System.Text.RegularExpressions;
using ClosedXML.Excel;
var percorso = args.Length > 0 ? args[0] : "ordini.xlsx";
using var cartella = new XLWorkbook(percorso);
var costante = new Regex(@"(?<![A-Z$\d.])\d+[.,]\d+|(?<![A-Z$\d])\d{3,}(?![\d:])");
var esterno = new Regex(@"\[[^\]]+\.xls[xm]?\]|'?[A-Za-z]:\\");
int formuleTotali = 0, costantiNelleFormule = 0, riferimentiEsterni = 0, errori = 0;
foreach (var foglio in cartella.Worksheets)
{
int formule = 0, costanti = 0, esterni = 0, err = 0;
foreach (var cella in foglio.CellsUsed())
{
if (cella.HasFormula)
{
formule++;
var testo = cella.FormulaA1;
if (costante.IsMatch(testo)) costanti++;
if (esterno.IsMatch(testo)) esterni++;
}
if (cella.DataType == XLDataType.Error || cella.CachedValue.IsError) err++;
}
Console.WriteLine($"{foglio.Name,-18} " +
$"{(foglio.Visibility == XLWorksheetVisibility.Visible ? "visibile" : "NASCOSTO"),-9} " +
$"formule {formule,4} costanti nelle formule {costanti,3} file esterni {esterni,2} errori {err,2}");
formuleTotali += formule; costantiNelleFormule += costanti;
riferimentiEsterni += esterni; errori += err;
}
Console.WriteLine();
Console.WriteLine($"Fogli: {cartella.Worksheets.Count} Formule: {formuleTotali} " +
$"Costanti dentro le formule: {costantiNelleFormule} " +
$"Collegamenti a file esterni: {riferimentiEsterni} Errori: {errori}");Sul file di prova stampa questo:
Ordini visibile formule 5 costanti nelle formule 5 file esterni 0 errori 0
Magazzino visibile formule 1 costanti nelle formule 1 file esterni 1 errori 0
Appoggio2019 NASCOSTO formule 1 costanti nelle formule 1 file esterni 0 errori 0
Fogli: 3 Formule: 7 Costanti dentro le formule: 7 Collegamenti a file esterni: 1 Errori: 0Come si legge. Ogni foglio nascosto con formule che alimentano altri fogli è un debito: qualcuno lo ha messo lì e nessuno sa perché. Ogni collegamento a file esterno è un punto che si rompe in silenzio. Ogni costante dentro una formula è una regola commerciale che non sta in nessun posto dove si possa cambiare. Su un file vero, con quaranta fogli, il censimento di solito trova decine di costanti e qualche collegamento che nessuno conosceva. Non sono un giudizio sul lavoro di chi ha costruito il file: sono la lista di che cosa va deciso prima di toccare qualsiasi cosa.
Due limiti, da dichiarare. Il censimento non legge le macro VBA, che stanno in un'altra parte del file e si contano con uno strumento diverso (o con un'occhiata a mano: Alt+F11 e conta i moduli). E la ricerca delle costanti è approssimativa: trova 0,92 e 5000, ma trova anche il 100 dentro una percentuale scritta come 100%, quindi il numero è un limite superiore, da guardare riga per riga. Serve a sapere dove guardare, non a giudicare.
Gestionale in abbonamento o su misura: come si capisce se il processo è tuo?
È la seconda domanda che decide, e la prima in cui sbagliano i venditori. Un gestionale in abbonamento costa poco e funziona bene quando il tuo processo è quello che lui si aspetta: ordini, magazzino, fatture, un listino, qualche sconto. Se invece nel tuo processo c'è qualcosa di particolare (una distinta base che cambia per cliente, uno sconto che dipende da una regola commerciale che solo tu hai, un'autorizzazione a tre livelli per gli ordini sopra una soglia), il gestionale si piega male, e l'azienda si piega al posto suo o paga personalizzazioni che costano come un programma su misura.
Per capire dove sei, scrivi su un foglio le dieci regole con cui la tua azienda decide il prezzo, accetta un ordine, lo prepara e lo fattura. Per ciascuna rispondi: la troverei scritta nel manuale di un gestionale di mercato, così com'è? Se otto o più su dieci sì, il processo è standard. Se sei o meno, il processo è tuo. Se sono sette, è un caso di confine e conviene guardare quali sono le tre regole che non calzano: se due sono dettagli che puoi cambiare, sei standard; se sono le regole che ti distinguono dai concorrenti, sei tuo.

Quando il processo non calza, il gestionale in abbonamento rende molto meno. Nel conto che segue, per un gestionale che non si adatta la riduzione del tempo perso scende dal 65% al 30%, quella degli errori dal 70% al 40%, le macro restano per metà e il costo iniziale sale a 30.000 euro per le personalizzazioni. Il risultato, per l'azienda tipo:
| Strada | 3 anni | 5 anni | 8 anni |
|---|---|---|---|
| A. Restare in Excel | 163.866 euro | 290.152 euro | 509.442 euro |
| B. Excel ordinato | 131.363 euro | 227.601 euro | 394.147 euro |
| C. Gestionale che non calza | 158.879 euro | 256.704 euro | 424.303 euro |
| D. Su misura | 152.593 euro | 206.987 euro | 297.921 euro |
Qui la lettura cambia. Il gestionale che non calza costa più dell'Excel ordinato a tutti gli orizzonti: è la strada peggiore, perché paghi un cambio di strumento e non ottieni il beneficio. Il su misura incrocia il gestionale al terzo anno (152.593 contro 158.879) e a otto anni risparmia 126.382 euro. E la regola cambia: quando il processo è tuo, a cinque anni sotto le 14 ore a settimana la strada giusta è ordinare Excel, sopra le 14 il su misura.
Un errore comune è decidere con la demo. Il venditore ti mostra il prodotto con il caso più bello: un ordine, un cliente, uno sconto semplice. La domanda da fargli è un'altra: "mostrami il mio caso peggiore". Porta tre ordini veri, quelli strani che fanno perdere tempo, e chiedi di vederli dentro il prodotto, senza programmazione e senza consulente. Se non ci riesce, hai il tuo numero.
Se il gestionale va bene ma ti serve solo qualcosa di molto tuo, esiste una via di mezzo: tenere il prodotto per tutto ciò che è standard e costruire attorno solo il pezzo che ti distingue, collegato tramite le sue interfacce. Costa molto meno di un programma completo, ma richiede un prodotto che abbia interfacce serie. Prima di scegliere, chiedilo: se il gestionale non si lascia collegare, quella via non esiste.
Che cosa si fa delle macro VBA?
Le macro sono la parte più delicata, perché sono codice scritto senza essere chiamato codice. Dentro hanno regole commerciali, calcoli, scorciatoie che le persone danno per scontate. Prima di cambiare strumento va deciso, macro per macro, che fine fa. Le strade sono tre.
- Si butta. La macro faceva una cosa che il nuovo strumento fa da solo: un'esportazione, una stampa, un totale. Si prova che il nuovo strumento dia lo stesso risultato e si cancella.
- Si riscrive. La macro contiene una regola che serve ancora. La regola si porta fuori dal file e si scrive in un posto dove si possa provare.
- Si lascia, con una data. Una macro che funziona, serve a una persona sola e non può essere sostituita adesso resta com'è, con scritto chi la usa e quando si rivede. Non è una soluzione, è un debito dichiarato.
Il caso più frequente, e quello che costa di più quando va storto, è la regola commerciale scritta dentro la macro. Ecco un esempio vero come forma, inventato come numeri: lo sconto sugli ordini. Nel file sta così:

Sub CalcolaSconto()
If Range("C4") > 5000 Then
Range("F4") = Range("E4") * 0.92
ElseIf Range("B4") = "Rossi" Then
Range("F4") = Range("E4") * 0.90
End If
End SubGuarda che cosa c'è dentro. La soglia 5000 è scritta a mano. Il cliente "Rossi" è un cognome nel codice: se Rossi cambia ragione sociale, o se un altro cliente ottiene lo stesso trattamento, qualcuno deve aprire la macro e modificarla. Le celle C4, E4 e F4 sono posizioni, non significati: se qualcuno inserisce una colonna, la macro scrive nella cella sbagliata e non dà errore. E non c'è nessuna prova: nessuno sa che la regola fa quello che dovrebbe finché un ordine esce sbagliato.
Portata fuori, la stessa regola diventa una classe che non sa niente di Excel. Il cliente ha una proprietà che dice se ha lo sconto riservato, e la soglia è una costante con un nome:
namespace Regole;
public sealed record Cliente(string Nome, bool HaScontoRiservato);
public sealed record Ordine(Cliente Cliente, decimal Totale);
public sealed class ScontiOrdine
{
private const decimal SogliaVolume = 5000m;
public decimal Percentuale(Ordine ordine)
{
if (ordine.Totale > SogliaVolume) return 0.08m;
if (ordine.Cliente.HaScontoRiservato) return 0.10m;
return 0m;
}
public decimal Netto(Ordine ordine) =>
decimal.Round(ordine.Totale * (1 - Percentuale(ordine)), 2);
}E la prova che la difende, in quattro righe di dati e una di controllo. Questi test li ho eseguiti: passano tutti e cinque.
using Xunit;
namespace Regole;
public class ScontiTest
{
private static readonly ScontiOrdine Sconti = new();
[Theory]
[InlineData(5001, false, 0.08)]
[InlineData(5000, false, 0)]
[InlineData(1200, true, 0.10)]
[InlineData(9000, true, 0.08)]
public void La_percentuale_segue_la_regola(decimal totale, bool riservato, decimal atteso)
{
var ordine = new Ordine(new Cliente("Rossi", riservato), totale);
Assert.Equal(atteso, Sconti.Percentuale(ordine));
}
[Fact]
public void Il_netto_e_arrotondato_a_due_decimali()
{
var ordine = new Ordine(new Cliente("Bianchi", false), 5001.01m);
Assert.Equal(4600.93m, Sconti.Netto(ordine));
}
}Nota il secondo caso, 5000 senza sconto. È quello che nella macro nessuno aveva deciso: "sopra 5000" vuol dire che 5000 esatto non ha lo sconto? La macro dice di no, e la classe lo mette per iscritto in un test. Quando quella regola cambia, il test fallisce e dice dove. È il passaggio da una regola che vive nella testa di una persona a una regola che vive in un posto dove la si può verificare.
Perché questo conta per la scelta dello strumento. Se scegli la strada C, la classe non ti serve: le regole le configuri dentro il gestionale, ma resta lo stesso esercizio, perché devi scrivere ogni regola in modo che qualcuno la possa controllare, e la lista delle regole che esce da questo lavoro è la parte più preziosa del progetto. Se scegli la D, la classe è l'inizio del programma. In entrambi i casi la regola va estratta prima di decidere, non dopo.
Come si cambia strumento senza fermare gli ordini?
Con una condizione che sembra ovvia e che molti progetti dimenticano: per un periodo, il vecchio e il nuovo convivono. Non esiste un giorno di passaggio in cui si spegne uno e si accende l'altro, a meno che l'azienda non possa permettersi di fermarsi e di sbagliare. Ecco i passi, nell'ordine in cui li faccio.
1. Censimento e misura (una settimana). Il censimento del file con il programma di prima, e la misura delle ore di attrito. Servono per dire a chi ti fa un preventivo "questo è il punto di partenza" e per poter dire, alla fine, "è andata meglio" con un numero e non con una sensazione.
2. Le dieci regole e i tre casi peggiori (due giorni). Le dieci regole che decidono prezzo, accettazione, preparazione e fattura, scritte in frasi. E tre ordini veri, quelli strani, conservati per le prove. Questi tre ordini saranno la prova di accettazione di qualsiasi strada: se il nuovo strumento li tratta bene, il resto è facile.
3. Ordinare comunque (due settimane). Anche se hai già deciso di cambiare, ordina il file: cancella i fogli morti, togli le costanti dalle formule e mettile in un foglio di parametri, e fissa una sola copia. Sembra tempo sprecato, perché il file morirà. Non lo è: un file ordinato si migra in metà tempo e con metà errori, e nel frattempo smetti di perdere dati.
4. Migrare i dati di anagrafica (una o due settimane). Clienti, articoli, listini. Sono i dati che cambiano poco, si migrano per primi, e il lavoro di pulizia (due clienti con lo stesso nome, un articolo con tre codici) lo fai su dati fermi. La pulizia è sempre la parte più lunga, e se la fai per ultima blocca tutto.
5. Lavorare in parallelo con pochi (due o quattro settimane). Due persone lavorano nel nuovo, le altre nel vecchio. Gli ordini veri passano nel nuovo e, per le prime settimane, vengono controllati a mano contro il vecchio. Quando i risultati coincidono per un mese, si allarga.
6. Passare tutti, tenendo il vecchio (una settimana). Il giorno del passaggio il vecchio file resta, in sola lettura, per almeno tre mesi. Se in un caso strano il nuovo sbaglia, si guarda come l'avrebbe fatto il vecchio.
7. Misurare e spegnere. Dopo due mesi, si rifà la misura della settimana di attrito. Se le ore sono scese come previsto, si archivia il vecchio file. Se non sono scese, si capisce perché prima di continuare: spesso è una funzione del vecchio che la gente fa ancora a mano perché nessuno ha spiegato come si fa nel nuovo.
La durata complessiva, per l'azienda tipo, va da due a quattro mesi, a seconda della strada. È più lunga della versione "un weekend" che qualcuno promette e più corta della versione "un anno" che qualcuno teme. L'errore è comprimerla togliendo il parallelo, che è proprio il pezzo che ti protegge dall'errore da 14.000 euro con cui è iniziato questo articolo.
Quali errori evitare?
- Cambiare strumento senza aver misurato il file. Se non hai le ore e gli errori di oggi, non puoi dire se il nuovo è meglio. Il censimento e la settimana di misura costano due giorni di lavoro e ti proteggono da tutto il resto.
- Scegliere con la demo del caso migliore. Porta i tre ordini strani e guarda se il prodotto li regge senza programmazione.
- Comprare un gestionale e personalizzarlo fino a farlo diventare su misura. È la strada più cara: paghi il canone di un prodotto standard e il costo di un programma su misura, con un fornitore che non è il tuo. Se la personalizzazione supera il 30% del costo iniziale, il conto sta dicendo che il processo è tuo.
- Riscrivere tutto "perché Excel è vecchio". Il criterio non è l'età dello strumento, sono le ore di attrito e il processo. Un'azienda con sei ore a settimana di attrito e un processo suo sta meglio con un Excel ordinato di quanto starebbe con un programma da 79.000 euro.
- Dimenticare chi ha costruito il file. La persona che ha scritto le formule è la sola che sa perché sono così. Coinvolgila fin dal censimento: se si sente scavalcata, si porta via il sapere e il progetto perde due mesi.
- Migrare i dati sporchi. Se due clienti sono lo stesso cliente nel file, saranno lo stesso cliente due volte nel gestionale, con fatture divise. La pulizia si fa prima della migrazione.
- Non tenere il vecchio. Il file originale va conservato in sola lettura, con data. Al primo dubbio su un ordine è l'unico modo di sapere chi aveva ragione.
- Dimenticare le persone. Un gestionale che chi lavora trova più lento di Excel viene aggirato: ricompare un file Excel "di appoggio" in una settimana. La formazione non è un costo opzionale, è nel conto da 3.000 euro, e va fatta su casi veri e non sul manuale.
Quando è meglio non fare niente di tutto questo?
Succede, e dirlo fa parte del mestiere. Tre casi.
- Il file è piccolo e lo usa una persona. Se le ore di attrito sono meno di tre a settimana e la persona è una, un Excel ordinato (la strada B) è proporzionato al problema. Non serve altro, e ordinarlo costa un paio di giornate.
- L'azienda ha un orizzonte corto. Se entro due anni si vende, si cambia modello o si chiude il reparto, il conto dice A o B. Un investimento che si ripaga in tre anni non ha senso in un'azienda che non c'è più fra due.
- Il vero problema non è lo strumento. A volte gli errori nascono da un processo che nessuno ha mai deciso: due reparti che usano due definizioni di "ordine confermato". Un gestionale nuovo non lo sistema, lo fissa nel codice. Prima si decide il processo, poi lo strumento.
Se vuoi un secondo parere sul tuo caso, la strada è la consulenza software. Per il conto completo di quanto costa tenere un sistema vecchio c'è la guida al costo del software legacy. Se il tuo programma non è un file ma un gestionale scritto anni fa in Windows Forms, c'è il confronto fra tenerlo, portarlo a .NET 10 o riscriverlo. Se la scelta è già caduta sul web, c'è la guida a Razor Pages, MVC e Blazor, e se il programma deve servire più aziende insieme, quella sull'architettura multi-tenant.
In cinque righe. Misura le ore di attrito a settimana in cinque giorni. Sotto le tre, ordina Excel e basta. Sopra le tre, scrivi le dieci regole e controlla se stanno in un gestionale di mercato: otto su dieci o più, compra l'abbonamento, e da 1,75 ore a settimana in su il conto a cinque anni ti dà ragione. Se il processo è tuo, ordina Excel fino a 14 ore e costruisci su misura sopra. In ogni caso, porta fuori le regole dalle macro prima di toccare qualsiasi cosa, e tieni il vecchio file per tre mesi.
Domande frequenti
Quando le ore perse dentro il file superano circa tre a settimana. A cinque anni un gestionale in abbonamento batte il restare da 1,75 ore a settimana, mentre ordinare Excel conviene da 2,5 ore. Per un'azienda con 18 ore a settimana il file costa circa 51.472 euro l'anno tra tempo perso, errori, macro e rischio di fermo.
Per un'azienda tipo di sei persone un gestionale in abbonamento costa circa 24.000 euro all'inizio (configurazione, migrazione dei dati, formazione, tempo interno) e 4.800 euro l'anno. Un programma su misura costa circa 79.000 euro all'inizio più 7.440 euro l'anno. Ordinare Excel costa circa 6.000 euro una tantum.
Dipende da quanto il processo è standard. Se otto regole su dieci stanno nel manuale di un gestionale di mercato, l'abbonamento è la strada più economica a ogni orizzonte. Se il processo è tuo, il gestionale che non calza costa più di un Excel ordinato, e il su misura lo supera dal terzo anno: a otto anni risparmia circa 126.000 euro.
Si decide macro per macro: si butta quella che il nuovo strumento rende inutile, si riscrive quella che contiene una regola ancora valida portandola fuori dal file in una classe con i suoi test, si lascia con una data di revisione quella che non si può sostituire subito. La regola commerciale scritta dentro una macro è il caso che costa di più quando va storto.
Per cinque giorni ogni persona che lavora nel file segna ogni volta che copia un dato, controlla un totale, cerca una versione, ripara una formula o aspetta che il file si liberi, con i minuti. A fine settimana si somma. Non serve precisione: serve sapere se sono tre ore o trenta.
Facendo convivere vecchio e nuovo: si ordina il file, si migrano prima le anagrafiche, si lavora in parallelo con due persone per due-quattro settimane controllando gli ordini a mano, si passa tutti tenendo il vecchio file in sola lettura per almeno tre mesi. Per l'azienda tipo la durata va da due a quattro mesi.
