IVA per cassa e fatture con Excel

di Alessandra Gualtieri

Pubblicato 21 Luglio 2009
Aggiornato 28 Marzo 2022 14:56

Monitorare fatture e incassi con Excel, calcolando in automatico l'IVA da versare così da sfruttare al meglio l'opzione di esigibilità differita.

Pensata per favorire le PMI, l’esigibilità differita dell’imposta a valore aggiunto, meglio nota come IVA per cassa, permette di attendere l’effettiva riscossione dei crediti in fattura prima di doverne pagare gli oneri fiscali. Introdotta dall’articolo 32-bis del Dl 83/2012, consente infatti all’imprenditore o al lavoratore autonomo di posticipare il versamento IVA al momento dell’incasso invece che nel momento di effettuazione dell’operazione.

Dal punto di vista contabile, il cedente o prestatore sarà tenuto a contabilizzare l’imposta solo quando riceverà il pagamento della fattura. Ovviamente non è possibile applicare il principio alle imprese che adottano il meccanismo del reverse charge, procedura gestionale ormai consolidata che prevede l’applicazione dell’inversione contabile.

Con un semplice foglio di calcolo, oltre a tenere evidenza delle fatture emesse e degli incassi ricevuti, si può compilare in automatico il report del debito IVA (mastrino dell’IVA c/vendite) nei confronti dell’Erario.

=> Scarica l’esempio

Per calcolare l’IVA per cassa con Excel, creiamo nel foglio di calcolo tre worksheet denominati rispettivamente “Fatture”, “Incassi” e “IVA”.

Il worksheet Fatture conterrà i seguenti campi: Protocollo, Data registrazione, Tipo fattura, Numero fattura, Data fattura, Cliente, Descrizione, Imponibile, IVA e Totale fattura. In particolare il campo Protocollo conterrà un valore univoco necessario a relazionare le fatture con gli incassi; il campo Tipo fattura dovrà permettere l’inserimento di due opzioni alternative: Esigibilità differita o Esigibilità immediata. Per fare questo è necessario definire, dopo aver selezionato le celle della colonna, le restrizioni attraverso il comando “Convalida” accessibile dal menu “Dati”.

Nei criteri di convalida alla voce “Consenti” indicheremo “Elenco”. In questo modo sarà reso visibile il campo “Origine” nel quale dovrà essere inserita la stringa “Esigibilità differita; Esigibilità immediata”. Così facendo abbiamo consentito la creazione di un menu a cascata su ogni cella della colonna Tipo fattura contente due sole opzioni. Qualunque tentativo di inserire un valore diverso da quelli proposti sarà considerato un errore ed evidenziato da Excel con un messaggio.

È possibile personalizzare la convalida compilando anche le pagine Messaggio di input e Messaggio di errore. Per fare in modo che il foglio di calcolo provveda a contabilizzare l’IVA della fattura in modalità del tutto automatica, inseriremo un pulsante che richiami un semplice codice scritto in VBA ovvero in Visual Basic Application Edition for Excel, il linguaggio di programmazione – molto simile al Visual Basic – che supporta le applicazioni di tipo Excel. Per prima cosa attivare la casella dei strumenti di Visual Basic dal menu Visualizza.

Accertarsi che Visual Basic sia in “modalità progettazione” al fine da permetterci di poter lavorare con gli oggetti. Dalla casella degli strumenti inserire un pulsante di comando, nominato cmdContabilizzaFattura, che andremo a relazionare con un codice ad hoc. Scopo del codice appena inserito è quello di verificare l’ultima fattura registrata nel worksheet Fatture (per questo motivo per il corretto funzionamento del foglio di calcolo non devono essere lasciate righe vuote) e, riconoscendo l’esigibilità immediata, registrare un movimento IVA. Il worksheet dedicato agli incassi prevede uno schema identico a quello delle fatture, eccezione fatta per la Data di registrazione che sarà Data di incasso. Poiché le informazioni da inserire in tabella sono esattamente identiche a quelle indicate nel foglio Fatture, al fine di ridurre al minimo la possibilità di errore, si provvederà a relazionare i worksheets tramite il campo Protocollo presente in entrambi.

Per fare ciò utilizzeremo la funzione Cerca.Vert, necessaria a trovare un valore nella colonna più sinistra di una tabella e restituirlo nella colonna indicata in corrispondenza della stessa riga. Si compone di quattro variabili: valore (il valore da ricercare nella prima colonna), tabella_matrice (è la tabella nella quale vengono cercati i dati), indice (il numero della colonna della tabella_matrice dal quale bisogna estrapolare il dato), intervallo (indica se i dati devono essere obbligatoriamente ordinati in ordine crescente).

La funzione da usare per trovare il tipo fattura è la seguente:
=SE(VAL.ERRORE(CERCA.VERT(B3;FATTURE!$B$3:$K$29;3;FALSO))=VERO;””;CERCA.VERT(B3;FATTURE!$B$3:$K$29;3;FALSO))

Sono state utilizzate anche le funzioni Se e Val.Errore per evitare la comparsa del simbolo #N/D in caso di errore. Inoltre sono stati utilizzati i riferimenti assoluti per permettere il trascinamento della funzione in tutta la colonna. Tutti altri campi della tabella saranno popolati da una funzione simile a quella appena descritta avendo cura di modificare la variabile Indice della funzione.

Ad esempio per trovare il numero fattura dovremo utilizzare la funzione
=SE(VAL.ERRORE(CERCA.VERT(B3;FATTURE!$B$3:$K$29;4;FALSO))=VERO;””;CERCA.VERT(B3;FATTURE!$B$3:$K$29;4;FALSO))

Mentre per trovare la data fattura
=SE(VAL.ERRORE(CERCA.VERT(B3;FATTURE!$B$3:$K$29;5;FALSO))=VERO;””;CERCA.VERT(B3;FATTURE!$B$3:$K$29;5;FALSO)). E così via fino al campo Totale fattura.

Anche in questo caso, per fare in modo che il foglio di calcolo provveda a contabilizzare l’IVA della fattura incassata, dovremo inserire un pulsante nominandolo cmdContabilizzaIncasso, relazionato con il seguente codice (clicca qui). Scopo del codice appena inserito è quello di verificare l’ultima fattura incassata nel worksheet Incassi (per questo motivo per il corretto funzionamento del foglio di calcolo non devono essere lasciate righe vuote) e, riconoscendo l’esigibilità differita, registrare un movimento IVA.

Avendo concluso la scrittura del codice, è necessario disattivare la “modalità progettazione” dalla casella degli strumenti di Visual Basic. Non ci resta che lavorare sull’ultimo worksheet relativo all’IVA. Questo foglio di calcolo può essere inteso come il mastrino dell’IVA a debito, nel quale vengono registrati tutti i movimenti IVA relativi alle vendite. Si dovrà comporre di almeno tre colonne (Data registrazione, Descrizione e IVA) e da un campo destinato alla conta dei record inseriti (indispensabile per permettere al codice Visual Basic inserito di lavorare correttamente) e dovrà contenere la seguente funzione:
=CONTA.VALORI(B3:B25)

La cartella di lavoro è stata completata. In questo modo riusciremo a monitorare le fatture passive con i relativi incassi e contemporaneamente avere una situazione costantemente aggiornata del debito IVA verso l’Erario.