(GRATIS fakturagenerator -mal) Lagre Excel -faktura som PDF

Jeg måtte nylig registrere meg under varer og tjenester skatt (GST) slik at jeg kan søke om GST på inntektene mine.

Når du har et GST -nummer, må du levere selvangivelsen hver måned (i India).

Så hver måned ville min kartlagte regnskapsfører kontakte meg og be om salgsfakturaer, slik at han kunne sende inn GST.

I mitt tilfelle er det bare en håndfull fakturaer som skal opprettes, ettersom jeg bare har noen få inntektskilder.

Siden dette er tilleggsarbeid, ønsket jeg imidlertid å få dette gjort så raskt som mulig.

Så for å minimere innsatsen min, opprettet jeg en Faktura Generator -mal i Excel som lar meg ha alle dataene på ett sted, og deretter oppretter den automatisk PDF -fakturaer for alle datapunktene.

Som du kan se nedenfor, alt jeg trenger å gjøre er å dobbeltklikke på klientens navn (i kolonne B), og den ville umiddelbart opprette og lagre fakturaen i PDF -formatet i den angitte mappen.

Du kan også endre fakturamalen for å passe til selskapets format (noe som krever at du endrer VBA -koden litt - forklart nedenfor).

Den oppretter en faktura som vist nedenfor:

Hvordan fungerer denne faktura -generatormalen?

I denne fakturamalen er det to regneark:

  1. Detaljer - Det er her du må spesifisere detaljene for salget/transaksjonen. For å holde alt sammen har jeg laget en rad for hver post. Alle detaljer om en transaksjon registreres i raden.
  2. Fakturamal - Dette er en plassholdermal for fakturaen der noen felt er tomme. Jeg må generere en egen faktura for alle salgsrekordene, og detaljene for hver faktura hentes fra Detaljer -regnearket.

Jeg har også en mappe på skrivebordet mitt med navnet 'Faktura PDF -filer'. Dette er mappen der de nyopprettede PDF -fakturaene lagres.

La oss nå se hvordan dette fungerer:

Du må dobbeltklikke på klientens navn (markert med oransje i detaljarket).

Det er det!

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

  1. Detaljer for klienten og salgstransaksjonen hentes, og fakturamalarket fylles ut med disse detaljene.
  2. Det opprettes en ny arbeidsbok som inneholder detaljene for den valgte klienten (som du dobbeltklikker på).
  3. Denne arbeidsboken lagres som en PDF i mappen Faktura PDF.
  4. Den nye arbeidsboken lukkes uten å lagre.

Hvis det er noen endringer i fakturaopplysningene, kan du dobbeltklikke på klientnavnet igjen, og en ny faktura vil bli opprettet (og denne vil overskrive den gamle).

Vær oppmerksom på at navnene på fakturaene er basert på måneden og fakturanummeret.

For eksempel en faktura med dato 15-04-2019 og fakturanummeret som 1 vil bli lagret med navnet April2021-2022_1.pdf. Dette hjelper deg med å holde oversikt over fakturaene hvis du har for mange.

Du kan laste ned malen for fakturagenerator ved å klikke på knappen nedenfor:

Endring av fakturageneratormalen

Jeg opprettet denne fakturamalen med et format som jeg trengte for mine GST -arkiveringer.

Hvis du trenger et annet format, må du redigere malen og deretter justere backend -VBA -koden.

La meg først vise deg 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. 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) Slutt 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: = False wb.Close SaveChanges: = False ThisWorkbook.Activate Application.ScreenUpdating = True End Sub

Koden ovenfor er det som kopierer detaljene for en transaksjon, fyller fakturaens plassholder -malen med disse detaljene, oppretter en ny arbeidsbok og lagrer den nye arbeidsboken som en PDF -fil i den angitte mappen.

Hvis du har en annen mal eller en annen mappeplassering, må du endre delene av koden som er markert nedenfor:

  1. Den første uthevede delen er det som tar detaljene fra detaljarket og fyller ut fakturamalen. Hvis du bestemmer deg for å endre fakturamalen, må du sørge for at du velger de riktige detaljene ved å endre denne delen av koden.
  2. Denne linjen angir mappens plassering. I mitt tilfelle var det en mappe på skrivebordet mitt. Du kan angi adressen til mappen der du vil at fakturaene skal lagres.

Vær oppmerksom på at jeg har gitt nytt navn til regnearkets kodenavn til 'shDetails'. Jeg har gjort dette slik at jeg kan bruke navnet - shDetails - i koden min, og det vil fortsette å fungere selv om du endrer navnet på arkene i regnearket.

Hvis du vil lære mer om arknavnet og kodenavnet, kan du se på dette (se delen om bruk av regnearkets kodenavn).

Hvor er koden i arbeidsboken?

Koden er plassert i bakenden av Excel-arbeidsboken i en modul.

Følg trinnene nedenfor for å få tilgang til koden:

  1. Klikk på Utvikler -fanen.
  2. Klikk på Visual Basic -alternativet. Dette åpner VB Editor -vinduet.
  3. I Visual Basic-editoren, dobbeltklikker du på modulen for å åpne kodevinduet. Du finner koden nevnt ovenfor.

Hvis du oppretter en mal selv, kan det hende du ikke finner modulen i en ny arbeidsbok. Du må høyreklikke på et av arbeidsbokobjektene, gå til Sett inn, og klikk deretter på Modul. Dette vil sette inn en ny modul.

Få dobbeltklikkfunksjonaliteten til å fungere

Koden ovenfor gjør alle de tunge løftene, men du må koble den til dobbeltklikk-hendelsen.

Dette betyr at den ovennevnte VBA-makrokoden må kjøres når noen dobbeltklikker på de fylte cellene i klientnavnkolonnen.

Dette kan gjøres ved å sette inn følgende kode i regnearkets kodevindu:

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 trinnene for å sette inn denne koden i regnearkets backend:

  • Høyreklikk på kategorien "Detaljer"
  • Klikk på alternativet "Vis kode".
  • Kopier og lim inn koden ovenfor i kodevinduet som vises.

Koden ovenfor gjør følgende:

  1. Kontrollerer om cellen som har blitt dobbeltklikket har klientinformasjonen eller ikke. Den bruker IF -setningen til å kontrollere og kjøre koden bare hvis cellen ikke er tom og i kolonne B.
  2. Hvis begge de angitte kriteriene er oppfylt, deaktiverer det dobbeltklikkfunksjonalitet (som skal komme inn i redigeringsmodus) og kaller "CreateInvoice" -programmet, som er lagret i modulen. Det overfører også radnummerverdien til subrutinen. For eksempel, hvis jeg dobbeltklikker på klientnavnet i den tredje raden, passerer det 3 som verdien til underprogrammen CreateInvoice.
  3. Når underprogrammet ‘CreateInvoice’ er kjørt - som lager fakturaens PDF - slutter den.

Klikk her for å laste ned fakturagenerator -malfilen.

Lagre fakturamalen som Excel (i stedet for PDF)

Hvis du vil lagre fakturamalene som Excel -filer og ikke som PDF -filer, kan du bruke koden nedenfor i stedet:

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) Slutt 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

Koden ovenfor lagrer fakturaen som en Excel -arbeidsbok med samme navnekonvensjon. Regnearket i arbeidsboken som inneholder den utfylte fakturaen i hver lagrede arbeidsbok heter også det samme.

Du kan også like følgende Excel -opplæringsprogrammer:

  • Hvordan konvertere Excel til PDF ved hjelp av VBA.
  • Legge inn PDF i Excel.
  • Pakk ut data fra PDF til Excel med denne omformeren.
  • Kalkulatormal for Excel -timeliste.
  • Excel Leave Tracker -mal.
  • Gratis Excel -maler.

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave