Pred kratkim sem se moral registrirati pod davkom na blago in storitve (GST), da sem lahko prijavil GST za svoj zaslužek.
Ko imate številko GST, morate vsak mesec vložiti svojo davčno napoved (v Indiji).
Tako mi je moj pooblaščeni računovodja vsak mesec ponudil račune za prodajo, da bi lahko vložil GST.
V mojem primeru je treba ustvariti le nekaj računov, saj imam le nekaj virov dohodka.
Ker pa gre za dodatno delo, sem želel to narediti čim hitreje.
Zato sem za zmanjšanje truda ustvaril predlogo generatorja računov v Excelu, ki mi omogoča, da imam vse podatke na enem mestu, nato pa samodejno ustvari račune PDF za vse podatkovne točke.
Kot lahko vidite spodaj, Vse kar moram storiti je, da dvokliknem ime stranke (v stolpcu B) in bi takoj ustvaril in shranil račun v obliki PDF v določeni mapi.
Predlogo računa lahko spremenite tudi tako, da ustreza obliki vašega podjetja (zaradi česar morate nekoliko spremeniti kodo VBA - spodaj je razloženo).
Ustvari račun, kot je prikazano spodaj:
Kako deluje ta predloga generatorja računov?
V tej predlogi računa sta dva delovna lista:
- Podrobnosti - Tukaj morate določiti podrobnosti prodaje/transakcije. Da bi bilo vse skupaj, sem za vsak zapis ustvaril eno vrstico. Vsi podatki o transakciji so zabeleženi v vrstici.
- Predloga računa - To je predloga nadomestnega mesta računa, pri kateri so nekatera polja prazna. Za vse zapise o prodaji moram ustvariti ločen račun, podrobnosti o vsakem računu pa se poberejo na delovnem listu Podrobnosti.
Na namizju imam tudi mapo z imenom »Računski PDF -ji«. To je mapa, v kateri so shranjeni novonastali računi PDF.
Zdaj pa poglejmo, kako to deluje:
Dvokliknite ime stranke (označeno z oranžno na listu s podrobnostmi).
To je to!
Ko dvokliknete ime odjemalca, se na zadnji strani zažene magija VBA in zgodijo se naslednje stvari:
- Podatki za stranko in prodajno transakcijo se zberejo in list predloge računa se napolni s temi podrobnostmi.
- Ustvari se nov delovni zvezek s podrobnostmi o izbranem odjemalcu (na katerem ste dvakrat kliknili).
- Ta delovni zvezek je shranjen kot PDF v mapi Račun PDF.
- Novi delovni zvezek je zaprt brez shranjevanja.
V primeru kakršnih koli sprememb v podrobnostih računa lahko znova dvakrat kliknete ime odjemalca in ustvaril se bo nov račun (ki bo prepisal starega).
Upoštevajte, da imena računov temeljijo na mesecu in številki računa.
Na primer račun z datumom 15-04-2019 in številko računa kot 1 bi bilo shranjeno z imenom Aprila2021-2022_1.pdf. To pomaga pri spremljanju računov, če jih imate preveč.
Predlogo generatorja računov lahko prenesete s klikom na spodnji gumb:
Spreminjanje predloge generatorja računov
Ustvaril sem to predlogo računa v obliki, ki sem jo potreboval za svoje vloge za GST.
Če potrebujete drugo obliko, boste morali urediti predlogo in nato prilagoditi zaledno kodo VBA.
Naj vam najprej pokažem kodo in razložim, kako deluje:
Sub CreateInvoice (RowNum As Integer) Application.ScreenUpdating = False Dim wb Kot delovni zvezek Dim sh As Delovni list s 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) Končaj z FPath = "C: \ Users \ sumit \ Desktop \ Invoice PDFs" Fname = Format (shInvoiceTemplate.Range ("D10"), "mmmm yyyy") _ & "_" & shInvoiceTemplate.Range ("D12") shInvoiceTemplate.Copy ActiveSheet.Name = "InvTemp" Set wb = ActiveWorkbook Set sh = ActiveSheet sh.ExportAsFixedFormat Vrsta: = xlTypePDF, Ime datoteke: = _ FPath & "\" & Fname, Kakovost: = xlQualityStandard, IncludeDocProperrerere: True, _, , OpenAfterPublish: = False wb.Close SaveChanges: = False ThisWorkbook.Activate Application.ScreenUpdating = True End Sub
Zgornja koda je tisto, kar kopira podrobnosti transakcije, napolni predlogo nadomestnega mesta računa s temi podrobnostmi, ustvari nov delovni zvezek in novi delovni zvezek shrani kot PDF v podani mapi.
Če imate drugo predlogo ali drugo mapo, morate spremeniti spodaj označene dele kode:
- Prvi označeni razdelek je tisto, kar vzame podrobnosti s lista Podrobnosti in zapolni predlogo računa. Če se odločite za spremembo predloge računa, se prepričajte, da s spreminjanjem tega dela kode izbirate prave podatke.
- Ta vrstica določa lokacijo mape. V mojem primeru je bila to mapa na mojem namizju. Določite lahko naslov mape, kamor želite shraniti račune.
Upoštevajte, da sem preimenoval kodno ime delovnega lista v 'shDetails'. To sem naredil, da lahko v svoji kodi uporabim ime - shDetails - in bi delovalo še naprej, tudi če spremenite ime listov na delovnem listu.
Če želite izvedeti več o imenu lista in kodnem imenu, si oglejte to (oglejte si razdelek o uporabi kodnega imena delovnega lista).
Kje je koda v delovnem zvezku?
Koda je vstavljena v zadnji del Excelovega delovnega zvezka v modulu.
Za dostop do kode sledite spodnjim korakom:
- Kliknite zavihek Razvijalec.
- Kliknite možnost Visual Basic. S tem se odpre okno urejevalnika VB.
- V urejevalniku Visual Basic dvokliknite modul, da odprete okno njegove kode. Našli boste zgoraj omenjeno kodo.
Če predlogo ustvarite sami, modula morda ne boste našli v novem delovnem zvezku. Z desno miškino tipko kliknite kateri koli predmet delovnega zvezka, pojdite na Vstavi in nato kliknite na Modul. S tem boste vstavili nov modul.
Ustvarjanje funkcije dvojnega klika
Zgornja koda naredi vse, kar je težko, vendar jo morate povezati z dogodkom dvojnega klika.
To pomeni, da se mora zgornja koda makra VBA zagnati vsakič, ko nekdo dvakrat klikne na zapolnjene celice v stolpcu z imenom odjemalca.
To lahko storite tako, da v okno kode delovnega lista vstavite naslednjo kodo:
Private Sub Worksheet_BeforeDoubleClick (ByVal Target As Range, Cancel As Boolean) If Target.Cells "" In Target.Column = 2 Potem Cancel = True Call CreateInvoice (Target.Row) End If End Sub
Tu so koraki za vstavljanje te kode v zaledje delovnega lista:
- Z desno miškino tipko kliknite zavihek »Podrobnosti«
- Kliknite možnost »Ogled kode«.
- Kopirajte in prilepite zgornjo kodo v okno za kodo, ki se prikaže.
Zgornja koda naredi naslednje:
- Preveri, ali celica, ki je bila dvakrat kliknjena, vsebuje podatke o odjemalcu ali ne. Za preverjanje in izvajanje kode uporablja stavek IF le, če celica ni prazna in v stolpcu B.
- Če sta navedena merila izpolnjena, onemogoči funkcijo dvojnega klika (za prehod v način urejanja) in pokliče podprogram 'CreateInvoice', ki je shranjen v modulu. V podprogram posreduje tudi vrednost številke vrstice. Na primer, če dvakrat kliknem na ime odjemalca v tretji vrstici, bo posredovalo 3 kot vrednost podprogramu CreateInvoice.
- Ko se podprogram "CreateInvoice" izvede - kar ustvari PDF računa - se konča.
Kliknite tukaj, če želite prenesti datoteko predloge generatorja računov.
Shranjevanje predloge računa kot Excel (namesto PDF)
Če želite predloge računov shraniti kot datoteke Excel in ne kot datoteke PDF, lahko namesto tega uporabite spodnjo kodo:
Sub CreateInvoice (RowNum As Integer) Application.ScreenUpdating = False Dim wb Kot delovni zvezek Dim sh As Delovni list s 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) Končaj z FPath = "C: \ Users \ sumit \ Desktop \ Invoice PDFs" Fname = Format (shInvoiceTemplate.Range ("D10"), "mmmm yyyy") _ & "_" & shInvoiceTemplate.Range ("D12") shInvoiceTemplate.Copy ActiveSheet.Name = "InvTemp" Set wb = ActiveWorkbook Set sh = ActiveSheet sh.Name = Fname wb.SaveAs Ime datoteke: = FPath & "\" & Fname wb.Zaprite SaveChanges: = False ThisWorkbook.Activate Application.ScreenUpdating = True End Sub
Zgornja koda shrani račun kot Excelov delovni zvezek z isto konvencijo poimenovanja. Delovni list v delovnem zvezku, ki vsebuje izpolnjen račun v vsakem shranjenem delovnem zvezku, je prav tako imenovan.
Koristni so vam lahko tudi naslednji vadnice programa Excel:
- Kako pretvoriti Excel v PDF z uporabo VBA.
- Vdelajte PDF v Excel.
- S tem pretvornikom izvlecite podatke iz PDF v Excel.
- Predloga kalkulatorja časovnega lista Excel.
- Predloga Excelovega sledilnika za sledenje.
- Brezplačne predloge programa Excel.