(GRATIS Skabelon til generering af fakturaer) Gem Excel -faktura som PDF

Jeg var for nylig nødt til at få mig selv registreret under varer- og serviceafgifter (GST), så jeg kan anmode om GST på min indtjening.

Når du har et GST -nummer, skal du indsende din selvangivelse hver måned (i Indien).

Så hver måned ville min kortlagte revisor kontakte mig og bede om salgsfakturaer, så han kunne indgive GST.

I mit tilfælde er der kun en håndfuld fakturaer, der skal oprettes, da jeg kun har få indkomstkilder.

Men da dette er ekstra arbejde, ønskede jeg at få dette gjort så hurtigt som muligt.

Så for at minimere min indsats oprettede jeg en Faktura Generator -skabelon i Excel, der giver mig mulighed for at have alle data ét sted, og derefter opretter den automatisk PDF -fakturaer for alle datapunkterne.

Som du kan se herunder, alt jeg skal gøre er at dobbeltklikke på klientens navn (i kolonne B), og det ville øjeblikkeligt oprette og gemme fakturaen i PDF -formatet i den angivne mappe.

Du kan også ændre fakturaskabelonen, så den passer til din virksomheds format (hvilket ville kræve, at du ændrer VBA -koden lidt - forklaret nedenfor).

Det opretter en faktura som vist herunder:

Hvordan fungerer denne Faktura Generator -skabelon?

I denne fakturaskabelon er der to regneark:

  1. detaljer - Det er her, du skal angive detaljerne for salget/transaktionen. For at holde alt sammen har jeg oprettet en række til hver post. Alle detaljer om en transaktion registreres i rækken.
  2. Faktura skabelon - Dette er en pladsholderskabelon for fakturaen, hvor nogle felter efterlades tomme. Jeg skal oprette en separat faktura for alle salgsoptegnelser, og detaljerne for hver faktura hentes fra regnearket Detaljer.

Jeg har også en mappe på mit skrivebord med navnet 'Faktura PDF'er'. Dette er den mappe, hvor de nyoprettede PDF -fakturaer gemmes.

Lad os nu se, hvordan dette fungerer:

Du skal dobbeltklikke på klientens navn (fremhævet med orange i oplysningsarket).

Det er det!

Når du dobbeltklikker på klientnavnet, starter det VBA-magien i bagenden, og følgende ting sker:

  1. Detaljer for kunden og salgstransaktionen afhentes, og fakturaskabelonarket udfyldes med disse detaljer.
  2. Der oprettes en ny projektmappe med detaljer om den valgte klient (som du har dobbeltklikket på).
  3. Denne projektmappe gemmes som en PDF i mappen Faktura PDF.
  4. Den nye projektmappe lukkes uden at gemme.

Hvis der er ændringer i fakturaoplysningerne, kan du dobbeltklikke på klientnavnet igen, og der vil blive oprettet en ny faktura (og denne vil overskrive den gamle).

Bemærk, at navnene på fakturaerne er baseret på måneden og fakturanummeret.

For eksempel en faktura med datoen 15-04-2019 og fakturanummeret som 1 ville blive gemt med navnet April2021-2022_1.pdf. Dette hjælper med at holde styr på fakturaerne, hvis du har for mange.

Du kan downloade skabelonen til fakturagenerator ved at klikke på knappen herunder:

Ændring af skabelon til fakturagenerator

Jeg oprettede denne fakturaskabelon med et format, som jeg havde brug for til mine GST -arkiveringer.

Hvis du har brug for et andet format, skal du redigere skabelonen og derefter justere backend -VBA -koden.

Lad mig først vise dig koden og forklare, hvordan den fungerer:

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. Område ("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) Slut med FPath = "C: \ Users \ sumit \ Desktop \ Invoice PDFs" Fname = Format (shInvoiceTemplate.Range ("D10"), "mmmm åååå") _ & "_" & shInvoiceTemplate.Range ("D12") shInvoiceTemplate.Copy ActiveSheet.Name = "InvTemp" Set wb = ActiveWorkbook Set sh = ActiveSheet sh.ExportAsFixedFormat Type: = xlTypePDF, Filnavn: = _ FPath & "\" & Fname, Quality: = xlQualityStandard, IncludeDocProperties: = True, _ IgnorePrintA: , OpenAfterPublish: = Falsk wb.Close SaveChanges: = False ThisWorkbook.Activate Application.ScreenUpdating = True End Sub

Ovenstående kode er, hvad der kopierer detaljerne i en transaktion, udfylder fakturaens pladsholder -skabelon med disse detaljer, opretter en ny projektmappe og gemmer den nye projektmappe som en PDF i den angivne mappe.

Hvis du har en anden skabelon eller en anden mappeplacering, skal du ændre de nedenfor fremhævede dele af koden:

  1. Det første fremhævede afsnit er det, der tager detaljerne fra oplysningsarket og udfylder fakturaskabelonen. Hvis du beslutter dig for at ændre fakturaskabelonen, skal du sørge for at vælge de rigtige detaljer ved at ændre denne del af koden.
  2. Denne linje angiver mappens placering. I mit tilfælde var det en mappe på mit skrivebord. Du kan angive adressen på den mappe, hvor du vil have fakturaerne gemt.

Bemærk, at jeg har omdøbt regnearkets kodenavn til 'shDetails'. Jeg har gjort dette, så jeg kan bruge navnet - shDetails - i min kode, og det vil fortsætte med at fungere, selvom du ændrer navnet på arkene i regnearket.

Hvis du vil lære mere om arknavnet og kodenavnet, kan du kigge på dette (se afsnittet om brug af regnearkets kodenavn).

Hvor er koden i projektmappen?

Koden er placeret i bagenden af ​​Excel-projektmappen i et modul.

Følg nedenstående trin for at få adgang til koden:

  1. Klik på fanen Udvikler.
  2. Klik på Visual Basic -indstillingen. Dette åbner VB Editor -vinduet.
  3. I Visual Basic-editoren skal du dobbeltklikke på modulet for at åbne dets kodevindue. Du finder koden nævnt ovenfor.

Hvis du selv opretter en skabelon, finder du muligvis ikke modulet i en ny projektmappe. Du skal højreklikke på et af projektmappeobjekterne, gå til Indsæt og derefter klikke på modul. Dette vil indsætte et nyt modul.

Få dobbeltklikfunktionen til at fungere

Ovenstående kode gør alle de tunge løft, men du skal koble den til dobbeltklik-begivenheden.

Det betyder, at den ovenstående VBA-makrokode skal køre, når nogen dobbeltklikker på de udfyldte celler i klientnavnkolonnen.

Dette kan gøres ved at indsætte følgende kode i regnearkets kodevindue:

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

Her er trinene til at indsætte denne kode i regnearkets backend:

  • Højreklik på fanen 'Detaljer' i regnearket
  • Klik på "Vis kode".
  • Kopier og indsæt ovenstående kode i det kodevindue, der vises.

Ovenstående kode gør følgende:

  1. Kontrollerer, om den celle, der er blevet dobbeltklikket, har klientoplysningerne eller ej. Den bruger IF -sætningen til kun at kontrollere og køre koden, hvis cellen ikke er tom og i kolonne B.
  2. Hvis begge de angivne kriterier er opfyldt, deaktiverer det dobbeltklik-funktionalitet (som skal komme i redigeringstilstand) og kalder 'CreateInvoice' underprogram, der er gemt i modulet. Det overfører også rækkenummerværdien til underrutinen. For eksempel, hvis jeg dobbeltklikker på klientnavnet i den tredje række, passerer det 3 som værdien til underprogrammet CreateInvoice.
  3. Når underprogrammet 'CreateInvoice' er udført - hvilket opretter PDF'en af ​​fakturaen - slutter den.

Klik her for at downloade skabelonfilen til fakturaen.

Gem fakturaskabelonen som Excel (i stedet for PDF)

Hvis du vil gemme fakturaskabelonerne som Excel -filer og ikke som PDF -filer, kan du i stedet bruge nedenstående kode:

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. Område ("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) Slut med FPath = "C: \ Users \ sumit \ Desktop \ Invoice PDFs" Fname = Format (shInvoiceTemplate.Range ("D10"), "mmmm åååå") _ & "_" & shInvoiceTemplate.Range ("D12") shInvoiceTemplate.Copy ActiveSheet.Name = "InvTemp" Set wb = ActiveWorkbook Set sh = ActiveSheet sh.Name = Fname wb.SaveAs Filnavn: = FPath & "\" & Fname wb.Close SaveChanges: = False ThisWorkbook.Activate Application.ScreenUpdating = True End Sub

Ovenstående kode gemmer fakturaen som en Excel -projektmappe med den samme navngivningskonvention. Regnearket i projektmappen, der indeholder den udfyldte faktura i hver gemt projektmappe, hedder også det samme.

Du kan også lide følgende nyttige tutorials:

  • Sådan konverteres Excel til PDF ved hjælp af VBA.
  • Integrer PDF i Excel.
  • Udtræk data fra PDF til Excel med denne konverter.
  • Excel -timesedels lommeregner skabelon.
  • Excel Leave Tracker -skabelon.
  • Gratis Excel -skabeloner.
wave wave wave wave wave