Di recente ho dovuto registrarmi ai sensi dell'imposta sui beni e servizi (GST) in modo da poter richiedere la GST sui miei guadagni.
Una volta che hai un numero GST, devi presentare la tua dichiarazione dei redditi ogni mese (in India).
Quindi, ogni mese, il mio commercialista mi contattava chiedendomi le fatture di vendita in modo da poter presentare la GST.
Nel mio caso, c'è solo una manciata di fatture da creare, poiché ho solo poche fonti di reddito.
Tuttavia, poiché si tratta di un lavoro aggiuntivo, volevo farlo il più rapidamente possibile.
Quindi, per ridurre al minimo il mio sforzo, ho creato un modello di generatore di fatture in Excel che mi consente di avere tutti i dati in un unico posto e quindi crea automaticamente fatture PDF per tutti i punti dati.
Come puoi vedere di seguito, tutto quello che devo fare è fare doppio clic sul nome del cliente (nella colonna B) e creerebbe e salverebbe istantaneamente la fattura in formato PDF nella cartella specificata.
Puoi anche modificare il modello di fattura per adattarlo al formato della tua azienda (il che richiederebbe di modificare un po' il codice VBA - spiegato di seguito).
Crea una fattura come mostrato di seguito:
Come funziona questo modello di generatore di fatture?
In questo modello di fattura sono presenti due fogli di lavoro:
- Dettagli - Qui è dove è necessario specificare i dettagli della vendita/transazione. Per tenere tutto insieme, ho creato una riga per ogni record. Tutti i dettagli di una transazione sono registrati nella riga.
- Modello di fattura - Questo è un modello segnaposto della fattura in cui alcuni campi sono lasciati vuoti. Devo generare una fattura separata per tutti i record di vendita e i dettagli per ogni fattura vengono prelevati dal foglio di lavoro Dettagli.
Ho anche una cartella sul desktop con il nome "Fattura PDF". Questa è la cartella in cui vengono salvate le fatture PDF appena create.
Ora vediamo come funziona:
È necessario fare doppio clic sul nome del cliente (evidenziato in arancione nella scheda Dettagli).
Questo è tutto!
Quando fai doppio clic sul nome del client, avvia la magia VBA nel back-end e accadono le seguenti cose:
- Vengono raccolti i dettagli per il cliente e la transazione di vendita e il foglio del modello di fattura viene compilato con questi dettagli.
- Viene creata una nuova cartella di lavoro con i dettagli del client selezionato (su cui si è fatto doppio clic).
- Questa cartella di lavoro viene salvata come PDF nella cartella PDF fattura.
- La nuova cartella di lavoro viene chiusa senza salvare.
In caso di modifiche ai dettagli della fattura, è possibile fare nuovamente doppio clic sul nome del cliente e verrà creata una nuova fattura (che sovrascriverà quella precedente).
Si noti che i nomi delle fatture si basano sul mese e sul numero di fattura.
Ad esempio, una fattura con la data 15-04-2019 e il numero di fattura come 1 verrebbe salvato con il nome Aprile2021-2022_1.pdf. Questo aiuta a tenere traccia delle fatture nel caso ne avessi troppe.
Puoi scaricare il modello del generatore di fatture facendo clic sul pulsante in basso:
Modifica del modello del generatore di fatture
Ho creato questo modello di fattura con un formato di cui avevo bisogno per i miei documenti GST.
Se hai bisogno di un formato diverso, dovrai modificare il modello e quindi regolare il codice VBA di backend.
Lascia che ti mostri prima il codice e ti spieghi come funziona:
Sub CreateInvoice(RowNum As Integer) Application.ScreenUpdating = False Dim wb As Workbook Dim sh As Worksheet With shInvoiceTemplate .Range("D10") = shDetails.Range("A" & RowNum) .Range("D11") = shDetails. Range("B" & RowNum) .Range("D12") = shDetails.Range("C" & RowNum) .Range("B15") = shDetails.Range("D" & RowNum) .Range("D15" ) = shDetails.Range("F" & RowNum) .Range("D16") = shDetails.Range("G" & RowNum) .Range("D18") = shDetails.Range("E" & RowNum) Termina con FPath = "C:\Users\sumit\Desktop\Invoice PDFs" Fname = Format(shInvoiceTemplate.Range("D10"), "mmmm aaaa") _ & "_" & shInvoiceTemplate.Range("D12") shInvoiceTemplate.Copy ActiveSheet.Name = "InvTemp" Set wb = ActiveWorkbook Set sh = ActiveSheet sh.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ FPath & "\" & Fname, Quality:=xlQualityStandard, IncludeDocProperties:=True, _ IgnorePrintAreas:=False , OpenAfterPublish:=False wb.Close SaveChanges:=False ThisWorkbook.Activate Application.ScreenUpdating = True End Sub
Il codice sopra è ciò che copia i dettagli di una transazione, riempie il modello segnaposto della fattura con quei dettagli, crea una nuova cartella di lavoro e salva la nuova cartella di lavoro come PDF nella cartella specificata.
Se hai un modello diverso o una posizione della cartella diversa, devi modificare le parti del codice evidenziate di seguito:
- La prima sezione evidenziata è quella che prende i dettagli dal foglio Dettagli e popola il modello di fattura. Se decidi di modificare il modello di fattura, devi assicurarti di selezionare i dettagli corretti modificando questa parte del codice.
- Questa riga specifica la posizione della cartella. Nel mio caso, era una cartella sul mio desktop. È possibile specificare l'indirizzo della cartella in cui si desidera salvare le fatture.
Nota che ho rinominato il nome del codice del foglio di lavoro in "shDetails". L'ho fatto in modo da poter usare il nome - shDetails - nel mio codice e continuerebbe a funzionare anche se cambi il nome dei fogli nel foglio di lavoro.
Se vuoi saperne di più sul nome del foglio e sul nome in codice, dai un'occhiata a questo (consulta la sezione sull'utilizzo del nome in codice del foglio di lavoro).
Dov'è il codice nella cartella di lavoro?
Il codice viene inserito nel back-end della cartella di lavoro di Excel in un modulo.
Per accedere al codice, seguire i passaggi seguenti:
- Fare clic sulla scheda Sviluppatore.
- Fare clic sull'opzione Visual Basic. Questo aprirà la finestra dell'editor VB.
- Nell'editor di Visual Basic, fare doppio clic sul modulo per aprire la finestra del codice. Troverai il codice sopra menzionato.
Nel caso in cui stai creando un modello da solo, potresti non trovare il modulo in una nuova cartella di lavoro. È necessario fare clic con il pulsante destro del mouse su uno qualsiasi degli oggetti della cartella di lavoro, andare su Inserisci e quindi fare clic su Modulo. Questo inserirà un nuovo modulo.
Far funzionare la funzionalità del doppio clic
Il codice sopra fa tutto il lavoro pesante, ma è necessario collegarlo all'evento del doppio clic.
Ciò significa che il codice della macro VBA sopra deve essere eseguito ogni volta che qualcuno fa doppio clic sulle celle riempite nella colonna del nome del cliente.
Questo può essere fatto inserendo il seguente codice nella finestra del codice del foglio di lavoro:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Cells "" And Target.Column = 2 Then Cancel = True Call CreateInvoice(Target.Row) End If End Sub
Ecco i passaggi per inserire questo codice nel backend del foglio di lavoro:
- Fare clic con il pulsante destro del mouse sulla scheda del foglio di lavoro "Dettagli"
- Fare clic sull'opzione "Visualizza codice".
- Copia e incolla il codice sopra nella finestra del codice che appare.
Il codice sopra fa le seguenti cose:
- Controlla se la cella su cui è stato fatto doppio clic contiene o meno i dettagli del cliente. Utilizza l'istruzione IF per controllare ed eseguire il codice solo se la cella non è vuota e nella colonna B.
- Se entrambi i criteri specificati sono soddisfatti, disabilita la funzionalità del doppio clic (che consiste nell'entrare nella modalità di modifica) e chiama la subroutine "Crea fattura", che è memorizzata nel modulo. Passa anche il valore del numero di riga alla subroutine. Ad esempio, se faccio doppio clic sul nome del cliente nella terza riga, passerà 3 come valore alla subroutine CreateInvoice.
- Una volta eseguita la subroutine "Crea Fattura", che crea il PDF della fattura, termina.
Fare clic qui per scaricare il file modello del generatore di fatture.
Salvataggio del modello di fattura come Excel (anziché PDF)
Se desideri salvare i modelli di fattura come file Excel e non come PDF, puoi utilizzare il codice seguente:
Sub CreateInvoice(RowNum As Integer) Application.ScreenUpdating = False Dim wb As Workbook Dim sh As Worksheet With shInvoiceTemplate .Range("D10") = shDetails.Range("A" & RowNum) .Range("D11") = shDetails. Range("B" & RowNum) .Range("D12") = shDetails.Range("C" & RowNum) .Range("B15") = shDetails.Range("D" & RowNum) .Range("D15" ) = shDetails.Range("F" & RowNum) .Range("D16") = shDetails.Range("G" & RowNum) .Range("D18") = shDetails.Range("E" & RowNum) Termina con FPath = "C:\Users\sumit\Desktop\Invoice PDFs" Fname = Format(shInvoiceTemplate.Range("D10"), "mmmm aaaa") _ & "_" & shInvoiceTemplate.Range("D12") shInvoiceTemplate.Copy ActiveSheet.Name = "InvTemp" Set wb = ActiveWorkbook Set sh = ActiveSheet sh.Name = Fname wb.SaveAs Filename:=FPath & "\" & Fname wb.Close SaveChanges:=False ThisWorkbook.Activate Application.ScreenUpdating = True End Sub
Il codice sopra salva la fattura come cartella di lavoro di Excel con la stessa convenzione di denominazione. Anche il foglio di lavoro nella cartella di lavoro che contiene la fattura compilata in ogni cartella di lavoro salvata ha lo stesso nome.
Ti potrebbero piacere anche i seguenti tutorial di Excel utili:
- Come convertire Excel in PDF utilizzando VBA.
- Incorpora PDF in Excel.
- Estrai dati da PDF a Excel con questo convertitore.
- Modello di calcolatrice foglio presenze di Excel.
- Modello di tracciamento delle uscite di Excel.
- Modelli Excel gratuiti.