(KOSTENLOSE Rechnungsgenerator-Vorlage) Excel-Rechnung als PDF speichern

Ich musste mich vor kurzem bei der Waren- und Dienstleistungssteuer (GST) registrieren lassen, damit ich GST für meine Einkünfte beantragen kann.

Sobald Sie eine GST-Nummer haben, müssen Sie Ihre Steuererklärung jeden Monat (in Indien) einreichen.

Also meldete sich mein Buchhalter jeden Monat bei mir und bat um Verkaufsrechnungen, damit er die GST beantragen kann.

In meinem Fall sind nur eine Handvoll Rechnungen zu erstellen, da ich nur wenige Einnahmequellen habe.

Da dies jedoch zusätzliche Arbeit ist, wollte ich dies so schnell wie möglich erledigen.

Um meinen Aufwand zu minimieren, habe ich in Excel eine Rechnungsgenerator-Vorlage erstellt, die es mir ermöglicht, alle Daten an einem Ort zu haben und dann automatisch PDF-Rechnungen für alle Datenpunkte zu erstellen.

Wie Sie unten sehen können, Ich muss nur auf den Namen des Kunden doppelklicken (in Spalte B), und es würde sofort die Rechnung im PDF-Format erstellen und im angegebenen Ordner speichern.

Sie können die Rechnungsvorlage auch an das Format Ihres Unternehmens anpassen (dazu müssen Sie den VBA-Code ein wenig ändern - unten erklärt).

Es erstellt eine Rechnung wie unten gezeigt:

Wie funktioniert diese Rechnungsgenerator-Vorlage?

In dieser Rechnungsvorlage gibt es zwei Arbeitsblätter:

  1. Einzelheiten - Hier müssen Sie die Details des Verkaufs/der Transaktion angeben. Um alles zusammenzuhalten, habe ich für jeden Datensatz eine Zeile erstellt. Alle Details einer Transaktion werden in der Zeile aufgezeichnet.
  2. Rechnungsvorlage - Dies ist eine Platzhaltervorlage der Rechnung, bei der einige Felder leer bleiben. Ich muss eine separate Rechnung für alle Verkaufsdatensätze erstellen und die Details für jede Rechnung werden aus dem Details-Arbeitsblatt entnommen.

Ich habe auch einen Ordner auf meinem Desktop mit dem Namen „Rechnungs-PDFs“. Dies ist der Ordner, in dem die neu erstellten PDF-Rechnungen gespeichert werden.

Sehen wir uns nun an, wie das funktioniert:

Sie müssen auf den Namen des Kunden doppelklicken (im Detailblatt orange hervorgehoben)..

Das ist es!

Wenn Sie auf den Clientnamen doppelklicken, wird die VBA-Magie im Backend gestartet und die folgenden Dinge passieren:

  1. Details für den Kunden und die Verkaufstransaktion werden abgeholt und das Rechnungsvorlagenblatt mit diesen Details ausgefüllt.
  2. Es wird eine neue Arbeitsmappe erstellt, die die Details des ausgewählten Clients enthält (auf den Sie doppelgeklickt haben).
  3. Diese Arbeitsmappe wird als PDF im Ordner Rechnungs-PDF gespeichert.
  4. Die neue Arbeitsmappe wird ohne Speichern geschlossen.

Falls sich die Rechnungsdetails ändern, können Sie erneut auf den Kundennamen doppelklicken und eine neue Rechnung wird erstellt (und die alte überschreibt).

Beachten Sie, dass die Namen der Rechnungen auf dem Monat und der Rechnungsnummer basieren.

Zum Beispiel eine Rechnung mit dem Datum 15-04-2019 und die Rechnungsnummer als 1 würde mit dem Namen gespeichert werden April 2021-2022_1.pdf. Dies hilft, den Überblick über die Rechnungen zu behalten, falls Sie zu viele haben.

Sie können die Rechnungsgenerator-Vorlage herunterladen, indem Sie auf die Schaltfläche unten klicken:

Ändern der Rechnungsgeneratorvorlage

Ich habe diese Rechnungsvorlage mit einem Format erstellt, das ich für meine GST-Einreichungen benötigte.

Wenn Sie ein anderes Format benötigen, müssen Sie die Vorlage bearbeiten und dann den Backend-VBA-Code anpassen.

Lassen Sie mich Ihnen zuerst den Code zeigen und erklären, wie er funktioniert:

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) End With 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, _ IgnorePrintAreas:=False , OpenAfterPublish:=False wb.Close SaveChanges:=False ThisWorkbook.Activate Application.ScreenUpdating = True End Sub

Der obige Code kopiert die Details einer Transaktion, füllt die Rechnungsplatzhaltervorlage mit diesen Details, erstellt eine neue Arbeitsmappe und speichert die neue Arbeitsmappe als PDF im angegebenen Ordner.

Wenn Sie eine andere Vorlage oder einen anderen Ordnerspeicherort haben, müssen Sie die unten hervorgehobenen Teile des Codes ändern:

  1. Der erste hervorgehobene Abschnitt übernimmt die Details aus dem Detailblatt und füllt die Rechnungsvorlage aus. Wenn Sie sich entscheiden, die Rechnungsvorlage zu ändern, müssen Sie sicherstellen, dass Sie die richtigen Details auswählen, indem Sie diesen Teil des Codes ändern.
  2. Diese Zeile gibt den Speicherort des Ordners an. In meinem Fall war es ein Ordner auf meinem Desktop. Sie können die Adresse des Ordners angeben, in dem die Rechnungen gespeichert werden sollen.

Beachten Sie, dass ich den Codenamen des Arbeitsblatts in „shDetails“ umbenannt habe. Ich habe dies getan, damit ich den Namen - shDetails - in meinem Code verwenden kann und es auch dann funktioniert, wenn Sie den Namen der Blätter im Arbeitsblatt ändern.

Wenn Sie mehr über den Blattnamen und den Codenamen erfahren möchten, sehen Sie sich dies an (lesen Sie den Abschnitt zur Verwendung des Arbeitsblattcodenamens).

Wo ist der Code in der Arbeitsmappe?

Der Code wird im Backend der Excel-Arbeitsmappe in einem Modul platziert.

Um auf den Code zuzugreifen, führen Sie die folgenden Schritte aus:

  1. Klicken Sie auf die Registerkarte Entwickler.
  2. Klicken Sie auf die Visual Basic-Option. Dies öffnet das VB-Editor-Fenster.
  3. Doppelklicken Sie im Visual Basic-Editor auf das Modul, um dessen Codefenster zu öffnen. Sie finden den oben genannten Code.

Falls Sie selbst eine Vorlage erstellen, finden Sie das Modul möglicherweise nicht in einer neuen Arbeitsmappe. Sie müssen mit der rechten Maustaste auf eines der Arbeitsmappenobjekte klicken, zu Einfügen wechseln und dann auf Modul klicken. Dadurch wird ein neues Modul eingefügt.

So funktioniert die Doppelklick-Funktionalität

Der obige Code erledigt die ganze Schwerarbeit, aber Sie müssen ihn mit dem Doppelklick-Ereignis verbinden.

Dies bedeutet, dass der obige VBA-Makrocode ausgeführt werden muss, wenn jemand auf die gefüllten Zellen in der Spalte mit dem Clientnamen doppelklickt.

Dies kann durch Einfügen des folgenden Codes in das Arbeitsblattcodefenster erfolgen:

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

Hier sind die Schritte zum Einfügen dieses Codes in das Arbeitsblatt-Backend:

  • Klicken Sie mit der rechten Maustaste auf die Registerkarte "Details" des Arbeitsblatts
  • Klicken Sie auf die Option „Code anzeigen“.
  • Kopieren Sie den obigen Code und fügen Sie ihn in das angezeigte Codefenster ein.

Der obige Code macht die folgenden Dinge:

  1. Überprüft, ob die Zelle, auf die doppelgeklickt wurde, die Kundendetails enthält oder nicht. Es verwendet die IF-Anweisung, um den Code nur dann zu überprüfen und auszuführen, wenn die Zelle nicht leer ist und sich in Spalte B befindet.
  2. Wenn beide angegebenen Kriterien erfüllt sind, deaktiviert es die Doppelklick-Funktionalität (um in den Bearbeitungsmodus zu gelangen) und ruft die Unterroutine „CreateInvoice“ auf, die im Modul gespeichert ist. Es übergibt auch den Zeilennummernwert an das Unterprogramm. Wenn ich beispielsweise auf den Kundennamen in der dritten Zeile doppelklicke, wird 3 als Wert an die CreateInvoice-Unterroutine übergeben.
  3. Sobald die Unterroutine „CreateInvoice“ ausgeführt wurde – die das PDF der Rechnung erstellt – endet sie.

Klicken Sie hier, um die Rechnungsgenerator-Vorlagendatei herunterzuladen.

Rechnungsvorlage als Excel speichern (statt PDF)

Wenn Sie die Rechnungsvorlagen als Excel-Dateien und nicht als PDFs speichern möchten, können Sie stattdessen den folgenden Code verwenden:

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) End With 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 Filename:=FPath & "\" & Fname wb.Close SaveChanges:=False ThisWorkbook.Activate Application.ScreenUpdating = True End Sub

Der obige Code speichert die Rechnung als Excel-Arbeitsmappe mit derselben Namenskonvention. Das Arbeitsblatt in der Arbeitsmappe, das die ausgefüllte Rechnung in jeder gespeicherten Arbeitsmappe enthält, wird ebenfalls gleich benannt.

Die folgenden Excel-Tutorials könnten Ihnen auch gefallen:

  • So konvertieren Sie Excel mit VBA in PDF.
  • PDF in Excel einbetten.
  • Extrahieren Sie mit diesem Konverter Daten aus PDF nach Excel.
  • Excel-Vorlage für Arbeitszeittabellen-Rechner.
  • Excel Leave Tracker-Vorlage.
  • Kostenlose Excel-Vorlagen.

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave