Logo Einstein grigio sfumato
e = m x c al quadrato

Gestiamo la fattura con Excel

Costruiamo una vera e propria applicazione per gestire la fattura con Microsoft Excel attorno ad uno dei diversi modelli giÓ disponibili.




Questa volta non partiamo da una cartella vuota ma da una che contenga già un modello di fattura.

Se fate clic su 'Nuovo' nel menù 'File' di Excel, vi verrà mostrata una finestra di dialogo simile a quella che vedete qui sotto (già a partire dalla versione 2000) per la scelta di vari modelli tra cui troverete senz'altro il modello fattura.

In questo tutorial facciamo riferimento alla versione Excel 2010. Selezionate la sottoscheda 'Modelli di Office.com, quindi fate clic sull' icona Fatture, quindi aprite la cartella Fatture di vendita e scegliete Fattura con IVA applicata parzialmente (figura 1).

Quello che vogliamo fare è creare un'applicazione tutto attorno al modello che avrete scelto e che sicuramente è più appropriato ai vostri gusti e alle vostre esigenze.

Sia che voi siate un libero professionista, un lavoratore autonomo o una piccola impresa, senz'altro vi sarebbe molto utile poter disporre di uno strumento agile e snello per registrare facilmente e velocemente nuovi articoli, anagrafiche clienti e soprattuto gli ordini.

Per quanto riguarda articoli e anagrafiche clienti la cosa è abbastanza facile: basta utilizzare dei fogli di calcolo separati dal modello ma appartenenti alla stessa cartella e inserirvi riga per riga i vostri records.

La faccenda si complica per gli ordini, perchè intanto l'ordine è fatto da una testata e da un corpo con il dettaglio degli articoli movimentati per quell'ordine, che andranno memorizzati in un luogo differente dall'archivio articoli, ovviamente, la data dell'ordine è diversa da quella della fattura, ecc., ecc.

Noi non utilizziamo il modello che vedete sotto per la fatturazione dei nostri corsi, (utilizziamo una applicazione con Microsoft Access, ben più complicata) ma abbiamo pensato che per le esegenze medie di una piccola azienda o di un professionista l'esempio che abbiamo preparato in Excel potrebbe rappresentare una valida alternativa a software specializzati e costosi.

La soluzione che vi proponiamo parte quindi da un modello di fattura qualsiasi (in fondo al tutorial vi forniremo comunque il nostro prototipo), quindi prevede l'aggiunta di 4 fogli di calcolo da salvare nella stessa cartella del modello.

I 4 fogli di calcolo aggiuntivi, come si vede già nella figura seguente, sono nell'ordine: Articoli, Condizioni Pagamento, Clienti e Ordini.

La personalizzazione della testata del modello fattura va naturalmente fatta a mano, d'altra parte si tratta di inserire la vostra ragione sociale, l'indirizzo e la partita iva soltanto la prima volta.

Il modello al quale fa riferimento questo tutorial è un nostro modello personalizzato proveniente comunque da un modello di Excel di una precedente versione analogo a quelli disponibili su qualsiasi versione come visto sopra.

In (figura 2) potete vedere la testata e la prima parte del nostro modello. Il foglio di lavoro contenente il modello è stato rinominato in Fattura. Alla cartella di lavoro sono stati aggiunti i fogli di lavoro aggiuntivi Articoli, Condizioni Pagamento, Clienti e Ordini.

Il primo dei 4 fogli, 'Articoli', non presenta particolari difficoltà, e non ha bisogno di alcuna macro per essere gestito.

Lasciate magari la prima riga per le intestazioni dei campi, che sono nell'ordine: Posizione, Codice, Descrizione, IVA, Prezzo e Sconto.

Posizionatevi quindi sulla seconda riga e fate clic sulla sezione Visualizza della barra multifunzione di Excel, quindi selezionate Blocca Riquadri: in questo modo se avete una lista di articoli molto lunga, la prima riga resterà bloccata e quindi sarà sempre visibile.

Per aggiungere, modificare o eliminare articoli quindi non occorre alcun codice o macro: basta utilizzare Excel in maniera intuitiva. L'ampiezza dei campi è pure libera, basta che poi stia in fattura.

Le uniche avvertenze sono di ricontrollare la prima colonna dopo aver aggiunto o eliminato articoli, in modo che vi sia sempre un numero progressivo e inserire sempre il prezzo al lordo dello sconto, mai al netto.

Se volete potete crearvi una macro per aggiornare automaticamente il progressivo.

Il codice (da copiare e incollare dentro la vostra macro) potrebbe essere questo:
N = 2
Do While IsEmpty(Cells(ActiveCell.Row, 3).Value) = False
Cells(N, 1) = N - 1
N = N + 1
Cells(N, 1).Select
Loop

Eseguite questa macro quando la cella attualmente selezionata è A2. La Macro genererà un numero progressivo a partire da 1 e dalla seconda riga, fintantochè la colonna Descrizione non è vuota.

Nella colonna dell'IVA inserire l'aliquota come numero intero, non come percentuale e così per lo sconto, se un articolo non ha sconto allora lasciate la casella in bianco (figura 3).

Anche per il secondo foglio di lavoro, quello delle 'Condizioni di Pagamento' (figura 4), procedete in maniera analoga come per gli 'Articoli'.

Potete inserire, modificare o eliminare le righe dalla seconda in poi senza problemi, naturalmente anche qui occorre mantenere la numerazione progressiva in prima colonna, ma non avrete bisogno di una macro, dato che i records per questo tipo di tabella sono pochi!

Passiamo ora al terzo foglio, quello dei Clienti (figura 5). Il primo rigo, come al solito, lo riserviamo per le descrizioni di colonna.

Tutte le informazioni di ciascun cliente verranno riportate automaticamente in fattura quando verrà data esecuzione alla macro (come vedremo tra poco) che compila la fattura sulla base di un qualsiasi ordine che si riferisce ad un dato cliente.

Potete aggiungere, modificare o eliminare righe anche in questo foglio; l'unica colonna che può dare qualche problema ai principianti potrebbe essere la colonna 'H', cioè quella relativa alle condizioni di pagamento.

Noterete che su ciascuna riga è presente un controllo casella combinata (detto anche elenco a discesa), il quale è stato posizionato esattamente nella cella in modo tale da combaciare con le relative dimensioni.

Potete farlo anche voi in qualsiasi momento facendo clic sulla scheda Sviluppo della Barra multifunzione di Excel, quindi Inserisci e infine Controlli Modulo. Selezionate quindi il controllo Casella combinata (dovrebbe essere la seconda icona dopo quella del pulsante di comando).

Trascinate il controllo sul foglio e quindi posizionatelo con il mouse sulla cella voluta. A questo punto fate clic con il tasto destro del mouse sul controllo e subito dopo premete ESC sulla tastiera: dovreste poter vedere i puntini di aggancio intorno al controllo, i che significa che si trova in modalità progettazione.

A questo punto fate clic ancora con il tasto destro del mouse, si aprirà la finestra di dialogo delle proprietà: selezionate l'ultima voce, 'Formato controllo'.

Impostate il primo parametro, 'Intervallo di input', sulla seconda colonna del foglio 'Condizioni Pagamento', quella che contiene la descrizione, quindi impostate il secondo parametro, 'Collegamento cella' sulla cella che sta esattamente 'dietro' al controllo casella combinata, in questo caso, H2.

In questo modo, quando l'utente selezionerà dall'elenco a discesa una data forma di pagamento, Excel riporterà automaticamente nella cella nascosta il valore del numero d'ordine, cioè il numero che sta nella prima colonna del foglio 'Condizioni di pagamento'.

Per esempio, se verrà selezionata 'CARTA DI CREDITO', nella cella nascosta H2 verrà memorizzato il valore '2'.

Stessa cosa per le altre righe. Se eliminate una riga intera, ricordatevi di posizionarvi sul controllo casella combinata e poi fare 'Taglia' dal menù 'Modifica' per eliminare il controllo.

Quando aggiungete un nuovo cliente potete copiare e incollare il controllo della riga precedente, ma poi ricordatevi di modificare opportunamente l' impostazione del parametro 'Collegamento cella' delle proprietà, in modo che punti alla casella giusta (figura 6).

E siamo arrivati finalmente alla parte più interessante, quella degli Ordini!

Nella figura 7 potete vedere il foglio di calcolo 'Ordini' con il primo ordine già impostato: l'ordine numero 1 non si può eliminare con la macro di eliminazione ordine, ed è consigliabile non eliminarlo mai anche se manualmente lo si potrebbe fare, perchè altrimenti le macro di inserimento ordine e di inserimento articolo non funzioneranno.

Gli ordini funzionano in questo modo: è sempre possibile inserire o eliminare ordini e inserire o eliminare articoli per ogni ordine senza doversi preoccupare di quante righe (articoli) occupa ciascun ordine perchè il tutto è gestito dinamicamente da un paio di macro.

Le macro sono un pò complicate, ma non si può avere tutto! Abbiamo preferito rendere più complicato il codice VBA ma mantenere snella l'applicazione per l'utente.

Ci sono però precise regole:

1. Prima di inserire ( CTRL + 'i' ) o eliminare ( CTRL + 'e' ) qualsiasi ORDINE bisogna selezionare la cella che contiene la DATA dell'ordine (per l'ordine numero 1 è B2)

2. Prima di inserire ( CTRL + 'i' ) o eliminare ( CTRL + 'e' ) qualsiasi ARTICOLO bisogna selezionare la riga che contiene l'ultimo articolo di ciascun ordine e in corrispondenza della colonna 'G' deve esservi l'etichetta blu che inizia con 'CTRL + I per inserire....eccetera'

3. Non si possono inserire articoli in una qualsiasi posizione ma soltanto sull'ultimo articolo di ciascun ordine.

4. Un ORDINE può avere qualsiasi numero di righe, quindi di ARTICOLI, anche se è bene non superare le righe del CORPO del MODELLO FATTURA (17).

5. Non c'è bisogno di inserire o eliminare manualmente i controlli casella combinata (o elenco a discesa) perchè sono completamente gestiti via codice.

6. La riga rossa 'Lasciare una riga vuota, ecc.' è anch'essa gestita automaticamente.

7. Non eliminare i commenti in blu perchè servono alle macro per sapere dove posizionarsi.

8. Se ci si dimentica di selezionare il CLIENTE o la QUANTITA' di un ARTICOLO la macro 'CompilaFattura' (che si attiva sul clic eseguito sul pulsante di comando omonimo) visualizza un messaggio e non prosegue.

9. Se tutti i dati dell'ordine sono coerenti, la macro 'CompilaFattura' fa quello che dice: riempie tutti i campi del modello fattura con i dati dell'ordine corrente.

10. La data e la numerazione della fattura non sono gestiti dalle macro.

Se facciamo clic sul pulsante 'Compila fattura' di riga 2, verrà inserito l'ordine corrispondente nel foglio 'Fattura' (figura 8).

La prima parte della fattura è visibile nella figura. Come si può notare vengono riportati gli estremi dell'ordine in alto a destra.

L' eventuale sconto viene calcolato al momento del riporto dei dati in fattura per ogni articolo.

Nella parte inferiore (figura 9) vengono eseguiti automaticamente i calcoli in base alle formule e quindi viene riportata anche la descrizione della modalità di pagamento che si era attribuita a quel cliente.

Per scaricare il prototipo del modello di fattura da noi utilizzato fate riferimento al file fattura con excel.zip contenuto nel file codice-macro-fattura-con-excel.zip - vedi riquadro in fondo alla pagina.

La costruzione dei controlli nel foglio 'Ordini' va fatta in questo modo: in C2 la casella combinata del Cliente deve essere chiamata con il nome: 'ORDINE1'.

Il pulsante di comando 'Compila Fattura' si chiama 'BOTTONE1' e non va collegato direttamente alla macro 'CompilaFattura() ma alla routine cmdBOTTONE1_Click().

La prima casella combinata del primo articolo del primo ordine si chiama 'ARTICOLO1.1', la seconda invece 'ARTICOLO2.1'.

Il primo numero dopo 'ARTICOLO' identifica l'articolo, il secondo numero dopo il punto identifica l'ordine.

Le formule nelle celle A5, B5 e E5 devono essere copiate e incollate da qui:
A5:=SE(C5=0;0;CERCA(C5;Articoli!$A$2:$A$6;Articoli!$B$2:$B$6))
B5:=SE(C5=0;0;CERCA(C5;Articoli!$A$2:$A$6;Articoli!$D$2:$D$6))
E5:=SE(C5=0;0;CERCA(C5;Articoli!$A$2:$A$6;Articoli!$E$2:$E$6))

Quelle relative agli ordini generati automaticamente sono anch'esse generate in automatico.

Per scaricare il codice VBA completo relativo a questo progetto seguite le istruzioni contenute nel riquadro celeste a fondo pagina.

Avvertenza !

Il file dell'esempio codice-macro-fattura-con-excel.zip contenente il codice VBA completo relativo a questo tutorial Ŕ disponibilenell'area 'Tutorial Download' riservata agli iscritti alle nostre newsletters.

Il file compresso contiene i seguenti files:

-codice-macro-fattura-con-excel.txt , un file di testo, dal quale Ŕ possibile fare un 'Copia e Incolla' delle singole Routines, da posizionare sul vostro Modulo VBA;
-Fattura Con Excel.zip che contiene a sua volta Fattura Con Excel.xls, il modello fattura cui si fa riferimento nel tutorial.

Vi consigliamo di utilizzare l'utilitÓ 'Blocco note' di Windows e di assicurarvi che l'opzione 'A capo automatico' (men¨ Strumenti) sia disattivata, prima di incollare il codice!

Iscriviti ora alla newsletter 'Comprendere il PC',  Ŕ gratis! Puoi utilizzare il riquadro qui a lato sulla sinistra della pagina in alto oppure seguire direttamente questo collegamento:

http://www.mc2elearning.com/html/comprendere_il_pc.html

(il link per il download Ŕ sulla mail di conferma iscrizione, dopo la convalida dell'indirizzo e-mail con il quale vi siete iscritti alla newsletter)





I Tutorial di Microsoft Excel


Home page MC2 E-Learning



Dr.Maurizio Cucchiara

Amministratore unico
MC2 E-Learning S.a r.l.
Formazione per il Web
autore del corso:
"VBA Corso Base"
disponibile on line su questo sito
http://www.mc2.it/html/vba.html




Guarda il video-tutorial
sul nostro canale Youtube:


Fattura con Excel 2010


Condividi sui social network:

Social buttons



Iscriviti al nostro
nuovissimo
canale Youtube!


Iscrivi al nostro canale Youtube

Iscrivimi ora





Potrai restare aggiornato
sui nostri pi¨ recenti
video-tutorial su:
Microsoft Access ed Excel
e molto altro...


Cerca sul web con Google: