(INGYENES számlagenerátor sablon) Mentse el az Excel számlát PDF formátumban

Nemrég regisztráltatnom kellett magam az Áruk és Szolgáltatások adója alatt (GST), hogy bevallást tehessek a GST -ről a bevételeimről.

Ha rendelkezik GST -számmal, minden hónapban be kell nyújtania az adóbevallását (Indiában).

Így minden hónapban az okleveles könyvelőm felkeresett, hogy eladási számlákat kérjen, hogy be tudja nyújtani a GST -t.

Esetemben csak maroknyi számlát kell létrehozni, mivel csak néhány bevételi forrásom van.

Mivel azonban ez többletmunka, szerettem volna ezt a lehető leggyorsabban elvégezni.

Így az erőfeszítéseim minimalizálása érdekében létrehoztam egy számlagenerátor sablont az Excelben, amely lehetővé teszi, hogy minden adat egy helyen legyen, majd automatikusan létrehozza az összes adatpont PDF -számláit.

Mint alább látható, csak annyit kell tennem, hogy duplán kattintok az ügyfél nevére (a B oszlopban), és azonnal létrehozza és elmenti a számlát PDF formátumban a megadott mappában.

A számla sablont a vállalat formátumának megfelelően is módosíthatja (ami megköveteli a VBA -kód egy kis módosítását - az alábbiakban ismertetjük).

Számlát készít az alábbiak szerint:

Hogyan működik ez a számlagenerátor sablon?

Ebben a számlasablonban két munkalap található:

  1. Részletek - Itt kell megadni az eladás/tranzakció részleteit. Annak érdekében, hogy minden együtt maradjon, minden rekordhoz létrehoztam egy sort. A tranzakció minden részlete rögzítésre kerül a sorban.
  2. Számla sablon - Ez a számla helyőrző sablonja, ahol egyes mezők üresen maradnak. Külön számlát kell generálnom az összes eladási rekordhoz, és az egyes számlák részleteit a Részletek munkalapról veszem fel.

Van egy mappám is az asztalon „Számla PDF -ek” néven. Ez az a mappa, ahová az újonnan létrehozott PDF -számlákat menti.

Most nézzük meg, hogyan működik ez:

Kattintson duplán az ügyfél nevére (narancssárga színnel kiemelve a Részletek lapon).

Ez az!

Amikor duplán kattint az ügyfél nevére, elindítja a VBA mágiát a háttérben, és a következő dolgok történnek:

  1. A rendszer felveszi az ügyfélre és az eladási tranzakcióra vonatkozó adatokat, és kitölti a számla sablonlapját.
  2. Létrejön egy új munkafüzet, amely tartalmazza a kiválasztott ügyfél adatait (amelyre duplán kattintott).
  3. Ez a munkafüzet PDF -ként kerül mentésre a Számla PDF mappába.
  4. Az új munkafüzet mentés nélkül bezárul.

Abban az esetben, ha bármilyen változás történik a számla részleteiben, kattintson duplán az ügyfél nevére, és új számla jön létre (és ez felülírja a régit).

Vegye figyelembe, hogy a számlák neve a hónapon és a számlaszámon alapul.

Például egy számla dátummal 15-04-2019 és a számla számát mint 1 névvel kerülne mentésre Április2021-2022_1.pdf. Ez segít nyomon követni a számlákat, ha túl sok van.

A számlagenerátor sablonját az alábbi gombra kattintva töltheti le:

A számlagenerátor sablonjának módosítása

Ezt a számla sablont olyan formátumban hoztam létre, amelyre szükségem volt a GST -i iktatáshoz.

Ha más formátumra van szüksége, akkor szerkesztenie kell a sablont, majd módosítania kell a háttér VBA -kódot.

Először hadd mutassam meg a kódot és magyarázzam el, hogyan működik:

Sub CreateInvoice (RowNum as Integer) Application.ScreenUpdating = False Dim wb Mint munkafüzet Dim sh mint Munkalap 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) Vége 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, Filename: = _ FPath & "\" & Fname, Quality: = xlQualityStandard, IncludeDocProperties: = True, _ IgnorePrintA , OpenAfterPublish: = False wb. Close SaveChanges: = False ThisWorkbook.Activate Application.ScreenUpdating = True End Sub

A fenti kód az, amely lemásolja a tranzakció részleteit, kitölti a számla helyőrző sablonját ezekkel az adatokkal, létrehoz egy új munkafüzetet, és elmenti az új munkafüzetet PDF -ként a megadott mappába.

Ha más sablon vagy más mappa található, módosítania kell a kód alább kiemelt részeit:

  1. Az első kiemelt rész az, amely a részleteket a Részletek lapról veszi, és kitölti a számlasablont. Ha úgy dönt, hogy módosítja a számlasablont, akkor a kód ezen részének módosításával meg kell győződnie arról, hogy a megfelelő adatokat választja -e ki.
  2. Ez a sor határozza meg a mappa helyét. Esetemben ez egy mappa volt az asztalon. Megadhatja annak a mappának a címét, ahová a számlákat menteni kívánja.

Ne feledje, hogy a munkalap kódnevét átneveztem „shDetails” -ra. Ezt azért tettem, hogy a kódomban használhassam az elnevezést - shDetails -, és akkor is működjön, ha megváltoztatja a munkalapok lapjait.

Ha többet szeretne megtudni a munkalap nevéről és a kódnévről, tekintse meg ezt (nézze meg a Munkalap kódnevének használatáról szóló részt).

Hol található a kód a munkafüzetben?

A kód az Excel munkafüzet hátsó részébe kerül egy modulban.

A kód eléréséhez kövesse az alábbi lépéseket:

  1. Kattintson a Fejlesztő fülre.
  2. Kattintson a Visual Basic lehetőségre. Ezzel megnyílik a VB Editor ablak.
  3. A Visual Basic szerkesztőben kattintson duplán a modulra a kódablak megnyitásához. Megtalálja a fent említett kódot.

Ha saját maga hoz létre sablont, előfordulhat, hogy nem találja a modult egy új munkafüzetben. Jobb egérgombbal kell kattintania a munkafüzet bármelyik objektumára, menjen a Beszúrás menübe, majd kattintson a Modul elemre. Ezzel új modult helyez be.

A dupla kattintás funkció működőképessé tétele

A fenti kód minden nehéz feladatot elvégez, de össze kell kapcsolnia a dupla kattintással.

Ez azt jelenti, hogy a fenti VBA makrókódnak futnia kell, amikor valaki kétszer rákattint a kitöltött cellákra az ügyfélnév oszlopban.

Ezt úgy teheti meg, hogy beszúrja a következő kódot a munkalap kódablakába:

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

Az alábbi lépésekkel illessze be ezt a kódot a munkalap háttérrendszerébe:

  • Kattintson a jobb gombbal a „Részletek” munkalap fülre
  • Kattintson a „Kód megtekintése” lehetőségre.
  • Másolja és illessze be a fenti kódot a megjelenő kódablakba.

A fenti kód a következőket teszi:

  1. Ellenőrzi, hogy a duplán kattintott cella tartalmazza-e az ügyfél adatait. Csak akkor használja az IF utasítást a kód ellenőrzésére és futtatására, ha a cella nem üres, és a B oszlopban található.
  2. Ha mindkét megadott feltétel teljesül, letiltja a dupla kattintás funkciót (amely a szerkesztési módba való belépéshez), és meghívja a „CreateInvoice” alprogramot, amelyet a modul tárol. Továbbá továbbítja a sorszám értékét az alprogramnak. Például, ha duplán kattintok az ügyfél nevére a harmadik sorban, akkor a 3 értéket adja át a CreateInvoice alprogramnak.
  3. A „CreateInvoice” alprogram végrehajtása után - amely létrehozza a számla PDF -jét - befejeződik.

Kattintson ide a Számlagenerátor sablonfájl letöltéséhez.

A számlasablon mentése Excel -ként (PDF helyett)

Ha a számla sablonokat Excel fájlként és nem PDF fájlként szeretné menteni, akkor az alábbi kódot használhatja:

Sub CreateInvoice (RowNum As Integer) Application.ScreenUpdating = False Dim wb Mint munkafüzet Dim sh Munkalapként 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) Vége 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 Fájlnév: = FPath & "\" & Fname wb.Close SaveChanges: = Hamis ThisWorkbook.Activate Application.ScreenUpdating = Igaz vég al

A fenti kód a számlát Excel -munkafüzetként menti, azonos elnevezési konvencióval. A munkafüzet munkalapja, amely minden egyes mentett munkafüzetben a kitöltött számlát tartalmazza, szintén ugyanaz.

Az alábbi Excel oktatóanyagok is hasznosak lehetnek:

  • Hogyan lehet Excel -t PDF -re konvertálni a VBA segítségével.
  • PDF beágyazása Excelbe.
  • Az adatok konvertálása PDF -ből Excelbe ezzel az átalakítóval.
  • Excel munkalap számológép sablon.
  • Excel Kilépés nyomkövető sablon.
  • Ingyenes Excel sablonok.
wave wave wave wave wave