Nesen man bija jāreģistrējas preču un pakalpojumu nodoklī (GST), lai es varētu reģistrēt GST par saviem ienākumiem.
Kad jums ir GST numurs, jums katru mēnesi jāiesniedz nodokļu deklarācija (Indijā).
Tāpēc katru mēnesi mans zvērinātais grāmatvedis sazinājās ar mani, lūdzot pārdošanas rēķinus, lai viņš varētu iesniegt GST.
Manā gadījumā ir jāizveido tikai daži rēķini, jo man ir tikai daži ienākumu avoti.
Tomēr, tā kā tas ir papildu darbs, es vēlējos to paveikt pēc iespējas ātrāk.
Tāpēc, lai samazinātu pūles, programmā Excel izveidoju rēķinu ģeneratora veidni, kas ļauj man visus datus atrast vienuviet, un pēc tam automātiski izveido PDF rēķinus par visiem datu punktiem.
Kā redzat zemāk, Viss, kas man jādara, ir dubultklikšķis uz klienta vārda (B slejā), un tas uzreiz izveidotu un saglabātu rēķinu PDF formātā norādītajā mapē.
Jūs varat arī mainīt rēķina veidni, lai tā atbilstu jūsu uzņēmuma formātam (kas prasītu nedaudz mainīt VBA kodu - paskaidrots tālāk).
Tas izveido rēķinu, kā parādīts zemāk:
Kā darbojas šī rēķinu ģeneratora veidne?
Šajā rēķina veidnē ir divas darblapas:
- Sīkāka informācija - Šeit ir jānorāda informācija par pārdošanu/darījumu. Lai viss būtu kopā, esmu izveidojis vienu rindu katram ierakstam. Visa informācija par darījumu tiek ierakstīta rindā.
- Rēķina veidne - Šī ir rēķina viettura veidne, kurā daži lauki tiek atstāti tukši. Man ir jāģenerē atsevišķs rēķins visiem pārdošanas ierakstiem, un informācija par katru rēķinu tiek iegūta no darblapas Detaļas.
Manā darbvirsmā ir arī mape ar nosaukumu “Rēķinu PDF”. Šī ir mape, kurā tiek saglabāti jaunizveidotie PDF rēķini.
Tagad redzēsim, kā tas darbojas:
Jums ir jāveic dubultklikšķis uz klienta vārda (detalizētas informācijas lapā iezīmēts oranžā krāsā).
Tieši tā!
Veicot dubultklikšķi uz klienta vārda, tas sāk VBA maģiju aizmugurē un notiek šādas lietas:
- Tiek iegūta informācija par klientu un pārdošanas darījumu, un rēķina veidnes lapa ir aizpildīta ar šo informāciju.
- Tiek izveidota jauna darbgrāmata, kurā ir informācija par atlasīto klientu (uz kura veicāt dubultklikšķi).
- Šī darbgrāmata tiek saglabāta PDF formātā mapē Rēķina PDF.
- Jaunā darbgrāmata tiek aizvērta, nesaglabājot.
Ja rēķina rekvizītos tiek veiktas kādas izmaiņas, varat vēlreiz veikt dubultklikšķi uz klienta vārda, un tiks izveidots jauns rēķins (un tas pārrakstīs veco).
Ņemiet vērā, ka rēķinu nosaukumi ir balstīti uz mēnesi un rēķina numuru.
Piemēram, rēķins ar datumu 15-04-2019 un rēķina numuru kā 1 tiks saglabāts ar nosaukumu Aprīlis2021-2022_1.pdf. Tas palīdz izsekot rēķiniem, ja to ir pārāk daudz.
Jūs varat lejupielādēt rēķinu ģeneratora veidni, noklikšķinot uz tālāk esošās pogas:
Rēķinu ģeneratora veidnes modificēšana
Es izveidoju šo rēķina veidni tādā formātā, kāds bija vajadzīgs maniem GST reģistriem.
Ja jums ir nepieciešams cits formāts, jums būs jārediģē veidne un pēc tam jāpielāgo aizmugures VBA kods.
Vispirms parādīšu kodu un paskaidrošu, kā tas darbojas:
Sub CreateInvoice (RowNum As Integer) Application.ScreenUpdating = False Dim wb Kā darbgrāmatas Dim sh kā darblapa ar shInvoiceTemplate .Range ("D10") = shDetails.Range ("A" & RowNum) .Range ("D11") = shDetails. Diapazons ("B" un rindas numurs). Diapazons ("D12") = shDetails.Range ("C" & Rindas numurs). Diapazons ("B15") = shDetails.Range ("D" & Rindas numurs). Diapazons ("D15") ) = shDetails.Range ("F" & RowNum). Range ("D16") = shDetails.Range ("G" & RowNum). Range ("D18") = shDetails.Range ("E" & RowNum) Beidzas ar 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 Type: = xlTypePDF, Faila nosaukums: = _ FPath & "\" & Fname, Quality: = xlQualityStandard, IncludeDocProperties: = True, _ IgnorePrintA , OpenAfterPublish: = False wb. Aizvērt SaveChanges: = False ThisWorkbook.Activate Application.ScreenUpdating = True End Sub
Iepriekš minētais kods kopē informāciju par darījumu, aizpilda rēķina viettura veidni ar šo informāciju, izveido jaunu darbgrāmatu un saglabā jauno darbgrāmatu kā PDF failu norādītajā mapē.
Ja jums ir cita veidne vai cita mapes atrašanās vieta, jums ir jāmaina tālāk izceltās koda daļas:
- Pirmā izceltā sadaļa ir tā, kas iegūst informāciju no informācijas lapas un aizpilda rēķina veidni. Ja jūs nolemjat mainīt rēķina veidni, jums jāpārliecinās, ka izvēlaties pareizo informāciju, mainot šo koda daļu.
- Šī rinda norāda mapes atrašanās vietu. Manā gadījumā tā bija mape manā darbvirsmā. Varat norādīt tās mapes adresi, kurā vēlaties saglabāt rēķinus.
Ņemiet vērā, ka esmu pārdēvējis darblapas koda nosaukumu uz “shDetails”. Esmu to darījis, lai savā kodā varētu izmantot nosaukumu - shDetails - un tas darbotos arī tad, ja darblapā mainītu lapu nosaukumu.
Ja vēlaties uzzināt vairāk par lapas nosaukumu un koda nosaukumu, apskatiet to (skatiet sadaļu par darblapas koda nosaukuma izmantošanu).
Kur ir kods darbgrāmatā?
Kods tiek ievietots moduļa Excel darbgrāmatas aizmugurē.
Lai piekļūtu kodam, veiciet tālāk norādītās darbības.
- Noklikšķiniet uz cilnes Izstrādātājs.
- Noklikšķiniet uz opcijas Visual Basic. Tas atvērs VB redaktora logu.
- Visual Basic redaktorā veiciet dubultklikšķi uz moduļa, lai atvērtu tā koda logu. Jūs atradīsit iepriekš minēto kodu.
Ja veidni veidojat pats, iespējams, neatradīsit moduli jaunā darbgrāmatā. Ar peles labo pogu noklikšķiniet uz jebkura darbgrāmatas objekta, dodieties uz Ievietot un pēc tam noklikšķiniet uz Modulis. Tādējādi tiks ievietots jauns modulis.
Lai dubultklikšķa funkcionalitāte darbotos
Iepriekš minētais kods veic visu smago celšanu, taču tas ir jāpievieno dubultklikšķa notikumam.
Tas nozīmē, ka iepriekš minētais VBA makro kods ir jāizpilda ikreiz, kad kāds veic dubultklikšķi uz aizpildītajām šūnām klienta nosaukuma slejā.
To var izdarīt, darblapas koda logā ievietojot šādu kodu:
Privāta apakšdarblapa_BeforeDoubleClick (ByVal Target kā diapazons, Atcelt kā Būla) Ja Target.Cells "" Un Target.Column = 2 Tad Atcelt = True Call CreateInvoice (Target.Row) Beigas Ja beigas Sub
Tālāk ir norādītas darbības, kā ievietot šo kodu darblapas aizmugurē.
- Ar peles labo pogu noklikšķiniet uz cilnes “Detaļas”
- Noklikšķiniet uz opcijas “Skatīt kodu”.
- Kopējiet un ielīmējiet iepriekš redzamo kodu parādītajā koda logā.
Iepriekš minētais kods veic šādas darbības:
- Pārbauda, vai šūnā, uz kuras ir veikts dubultklikšķis, ir klienta informācija. Tas izmanto IF priekšrakstu, lai pārbaudītu un palaistu kodu tikai tad, ja šūna nav tukša un atrodas B slejā.
- Ja abi norādītie kritēriji ir izpildīti, tas atspējo dubultklikšķa funkcionalitāti (tas ir, lai iekļūtu rediģēšanas režīmā) un izsauc apakšprogrammu “CreateInvoice”, kas tiek saglabāta modulī. Tas arī nodod rindas numura vērtību apakšprogrammai. Piemēram, ja veicu dubultklikšķi uz klienta vārda trešajā rindā, tas nodos 3 kā vērtību apakšprogrammai CreateInvoice.
- Tiklīdz tiek izpildīta apakšprogramma CreateInvoice, kas izveido rēķina PDF failu, tā beidzas.
Noklikšķiniet šeit, lai lejupielādētu rēķinu ģeneratora veidnes failu.
Rēķina veidnes saglabāšana kā Excel (nevis PDF)
Ja vēlaties rēķinu veidnes saglabāt kā Excel failus, nevis kā PDF failus, varat izmantot tālāk norādīto kodu.
Sub CreateInvoice (RowNum As Integer) Application.ScreenUpdating = False Dim wb Kā darbgrāmatas Dim sh kā darblapa ar shInvoiceTemplate .Range ("D10") = shDetails.Range ("A" & RowNum) .Range ("D11") = shDetails. Diapazons ("B" un rindas numurs). Diapazons ("D12") = shDetails.Range ("C" & Rindas numurs). Diapazons ("B15") = shDetails.Range ("D" & Rindas numurs). Diapazons ("D15") ) = shDetails.Range ("F" & RowNum). Range ("D16") = shDetails.Range ("G" & RowNum) .Range ("D18") = shDetails.Range ("E" & RowNum) Beidzas ar 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 Faila nosaukums: = FPath & "\" & Fname wb.Close SaveChanges: = False ThisWorkbook.Activate Application.ScreenUpdating = Patiesa beigu apakšdaļa
Iepriekš minētais kods saglabā rēķinu kā Excel darbgrāmatu ar tādu pašu nosaukumu piešķiršanas kārtību. Darbgrāmatas darblapa, kas satur aizpildīto rēķinu katrā saglabātajā darbgrāmatā, ir nosaukta tāpat.
Jums varētu patikt arī šādas Excel apmācības:
- Kā pārvērst Excel uz PDF, izmantojot VBA.
- Iegult PDF programmā Excel.
- Iegūstiet datus no PDF uz Excel, izmantojot šo pārveidotāju.
- Excel laika uzskaites kalkulatora veidne.
- Excel atstāt izsekotāja veidni.
- Bezmaksas Excel veidnes.