(BEZPŁATNY szablon generatora faktur) Zapisz fakturę Excel jako PDF

Niedawno musiałem zarejestrować się w podatku od towarów i usług (GST), aby móc ubiegać się o podatek GST od moich zarobków.

Po uzyskaniu numeru GST musisz co miesiąc składać zeznanie podatkowe (w Indiach).

Tak więc co miesiąc mój biegły księgowy kontaktował się ze mną z prośbą o faktury sprzedaży, aby mógł złożyć wniosek o podatek GST.

W moim przypadku do wystawienia jest tylko garstka faktur, ponieważ mam tylko kilka źródeł dochodu.

Ponieważ jednak jest to dodatkowa praca, chciałem to zrobić jak najszybciej.

Aby zminimalizować mój wysiłek, stworzyłem szablon Generatora faktur w Excelu, który pozwala mi zgromadzić wszystkie dane w jednym miejscu, a następnie automatycznie tworzy faktury PDF dla wszystkich punktów danych.

Jak widać poniżej, wystarczy, że kliknę dwukrotnie w nazwę klienta (w kolumnie B) i natychmiast utworzy i zapisze fakturę w formacie PDF w określonym folderze.

Możesz również zmodyfikować szablon faktury, aby pasował do formatu Twojej firmy (co wymagałoby niewielkiej zmiany kodu VBA - wyjaśniono poniżej).

Tworzy fakturę, jak pokazano poniżej:

Jak działa ten szablon generatora faktur?

W tym szablonie faktury znajdują się dwa arkusze:

  1. Detale - Tutaj musisz określić szczegóły sprzedaży/transakcji. Aby zachować wszystko razem, utworzyłem jeden wiersz dla każdego rekordu. Wszystkie szczegóły transakcji są rejestrowane w wierszu.
  2. Szablon faktury - To jest szablon zastępczy faktury, w którym niektóre pola są puste. Muszę wygenerować oddzielną fakturę dla wszystkich rekordów sprzedaży, a szczegóły dla każdej faktury są pobierane z arkusza Szczegóły.

Mam też na pulpicie folder o nazwie „Pliki PDF z fakturą”. Jest to folder, w którym zapisywane są nowo utworzone faktury PDF.

Zobaczmy teraz, jak to działa:

Musisz dwukrotnie kliknąć nazwę klienta (podświetloną na pomarańczowo w arkuszu Szczegóły).

Otóż ​​to!

Dwukrotne kliknięcie nazwy klienta uruchamia magię VBA na zapleczu i dzieją się następujące rzeczy:

  1. Pobierane są szczegóły dotyczące klienta i transakcji sprzedaży, a arkusz szablonu faktury jest wypełniany tymi danymi.
  2. Zostanie utworzony nowy skoroszyt zawierający szczegóły wybranego klienta (który został kliknięty dwukrotnie).
  3. Ten skoroszyt jest zapisywany jako plik PDF w folderze Faktura PDF.
  4. Nowy skoroszyt jest zamykany bez zapisywania.

W przypadku jakichkolwiek zmian w szczegółach faktury, możesz ponownie dwukrotnie kliknąć nazwę klienta, a zostanie utworzona nowa faktura (i nadpisze starą).

Pamiętaj, że nazwy faktur są oparte na miesiącu i numerze faktury.

Na przykład faktura z datą 15-04-2019 i numer faktury jako 1 zostanie zapisany z nazwą Kwiecień 2021-2022_1.pdf. Pomaga to w śledzeniu faktur w przypadku, gdy masz ich zbyt wiele.

Możesz pobrać szablon generatora faktur, klikając poniższy przycisk:

Modyfikowanie szablonu generatora faktur

Utworzyłem ten szablon faktury w formacie, którego potrzebowałem do moich deklaracji GST.

Jeśli potrzebujesz innego formatu, musisz edytować szablon, a następnie dostosować kod VBA zaplecza.

Pozwól, że najpierw pokażę Ci kod i wyjaśnię, jak to działa:

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) Zakończ na FPath = "C:\Users\sumit\Desktop\Invoice PDFs" Fname = Format(shInvoiceTemplate.Range("D10"), "mmmm rrrr") _ & "_" & 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, _ IgnorePrintAreas:=False , OpenAfterPublish:=False wb.Close SaveChanges:=False ThisWorkbook.Activate Application.ScreenUpdating = True End Sub

Powyższy kod kopiuje szczegóły transakcji, wypełnia szablon zastępczy faktury tymi szczegółami, tworzy nowy skoroszyt i zapisuje nowy skoroszyt jako plik PDF w określonym folderze.

Jeśli masz inny szablon lub inną lokalizację folderu, musisz zmodyfikować podświetlone poniżej części kodu:

  1. Pierwsza podświetlona sekcja to ta, która pobiera szczegóły z arkusza Szczegóły i wypełnia szablon faktury. Jeśli zdecydujesz się zmodyfikować szablon faktury, musisz upewnić się, że wybierasz właściwe dane, modyfikując tę ​​część kodu.
  2. Ten wiersz określa lokalizację folderu. W moim przypadku był to folder na moim Pulpicie. Możesz określić adres folderu, w którym chcesz zapisać faktury.

Zauważ, że zmieniłem nazwę kodową arkusza roboczego na „shDetails”. Zrobiłem to, aby móc użyć nazwy - shDetails - w moim kodzie i nadal będzie działać, nawet jeśli zmienisz nazwy arkuszy w arkuszu.

Jeśli chcesz dowiedzieć się więcej o nazwie arkusza i nazwie kodowej, spójrz na to (zapoznaj się z sekcją dotyczącą używania nazwy kodowej arkusza roboczego).

Gdzie jest kod w skoroszycie?

Kod jest umieszczany na zapleczu skoroszytu programu Excel w module.

Aby uzyskać dostęp do kodu, wykonaj poniższe czynności:

  1. Kliknij kartę Deweloper.
  2. Kliknij opcję Visual Basic. Spowoduje to otwarcie okna Edytora VB.
  3. W edytorze Visual Basic kliknij dwukrotnie moduł, aby otworzyć jego okno kodu. Znajdziesz kod wspomniany powyżej.

Jeśli sam tworzysz szablon, możesz nie znaleźć modułu w nowym skoroszycie. Musisz kliknąć prawym przyciskiem myszy dowolny obiekt skoroszytu, przejść do Wstaw, a następnie kliknąć Moduł. Spowoduje to wstawienie nowego modułu.

Sprawianie, by funkcja podwójnego kliknięcia działała

Powyższy kod wykonuje wszystkie ciężkie podnoszenie, ale musisz połączyć go ze zdarzeniem podwójnego kliknięcia.

Oznacza to, że powyższy kod makra VBA musi być uruchamiany za każdym razem, gdy ktoś dwukrotnie kliknie wypełnione komórki w kolumnie nazwy klienta.

Można to zrobić, wstawiając następujący kod w oknie kodu arkusza roboczego:

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

Oto kroki, aby wstawić ten kod do zaplecza arkusza roboczego:

  • Kliknij prawym przyciskiem myszy kartę arkusza „Szczegóły”
  • Kliknij opcję „Wyświetl kod”.
  • Skopiuj powyższy kod i wklej go w wyświetlonym oknie kodu.

Powyższy kod robi następujące rzeczy:

  1. Sprawdza, czy komórka, która została kliknięta dwukrotnie, zawiera dane klienta, czy nie. Używa instrukcji IF do sprawdzania i uruchamiania kodu tylko wtedy, gdy komórka nie jest pusta i znajduje się w kolumnie B.
  2. Jeśli oba podane kryteria są spełnione, wyłącza funkcję podwójnego kliknięcia (czyli przejście do trybu edycji) i wywołuje podprogram „CreateInvoice”, który jest przechowywany w Module. Przekazuje również wartość numeru wiersza do podprogramu. Na przykład, jeśli kliknę dwukrotnie nazwę klienta w trzecim wierszu, przekaże ona 3 jako wartość do podprogramu CreateInvoice.
  3. Po wykonaniu podprogramu „CreateInvoice” – który tworzy plik PDF faktury – kończy się.

Kliknij tutaj, aby pobrać plik szablonu generatora faktur.

Zapisywanie szablonu faktury jako Excel (zamiast PDF)

Jeśli chcesz zapisać szablony faktur jako pliki Excel, a nie jako PDF, możesz zamiast tego użyć poniższego kodu:

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

Powyższy kod zapisuje fakturę jako skoroszyt programu Excel o tej samej konwencji nazewnictwa. Arkusz w skoroszycie, który zawiera wypełnioną fakturę w każdym zapisanym skoroszycie, również ma taką samą nazwę.

Możesz również polubić następujące samouczki Excela:

  • Jak przekonwertować Excel do PDF za pomocą VBA.
  • Osadź plik PDF w programie Excel.
  • Wyodrębnij dane z pliku PDF do programu Excel za pomocą tego konwertera.
  • Szablon kalkulatora grafiku programu Excel.
  • Excel pozostawić szablon śledzenia.
  • Darmowe szablony Excela.

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave