Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Mehrere Rechnungspositionen in eine Rechnung

Mehrere Rechnungspositionen in eine Rechnung
19.07.2017 16:10:27
Marcus
Hallo Zusammen,
ich wende mich an Euch/Sie, da ich folgendes Problem zu bewältigen habe:
Ich bekomme Rechnungsrohdaten von einer Firma mit Rechnungsinformationen ihrer Kunden wie Debitorennummer, Rechnungsnummer, Rechnungsdatum und natürlich dem Rechnungsbetrag. Aus diesen sollen dann die Rechnungen erstellt werden.
Nun habe ich bereits eine Excel Datei, die mit Hilfe von Makros aus jeder Zeile dieser Rohdaten eine Rechnung als neues Blatt erstellt (Ein vorgefertigtes Rechnungsformular als Template in der gleichen Excel Datei ist hier die Basis).
Dies bedeutet aber, dass für den gleichen Debitor für jeden einzelnen Posten eine separate Rechnung erstellt wird (so. z.B. 10 Rechnung über je 3 Euro). Ziel wäre es nun, dass für einen Debitor jeweils nur eine einzige Rechnung, mit allen seinen offenen Positionen darin, erstellt wird.
Ich schätze, dass hier im existierenden Code ein Loop eingebaut werden müsste, der das Dokument nach gleichlautenden Debitorennummern checkt und diese Werte dann in einer einzelnen Rechnung ausgibt, bevor er ein neues Blatt/eine neue Rechnung erstellt.
Ein damit zusammenhängendes Problem wäre dazu, dass jede einzelne Zeile in den Rohdaten eine separate Rechnungsnummer hat und somit nicht in der Rechnungsüberschrift auftauchen kann (wie momentan programmiert) sondern jeweils hinter der zugehörigen Position auftauchen muss.
Dies ist der aktuelle Code hinter dem Button: "Create Invoice":
Sub Button1_Click()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim c As Range, Myrange As Range
Sheets("Invoice Overview").Select
Set Myrange = Sheets("Invoice Overview").Range("B9:B" & Sheets("Invoice Overview").Cells( _
Rows.Count, 2).End(xlUp).Row)
For Each c In Myrange
Dim sCheck As Boolean
sCheck = False
With ThisWorkbook
For sheet_loop = 1 To .Sheets.Count
If .Sheets(sheet_loop).Name = c.Value Then
sCheck = True
Exit For
End If
Next sheet_loop
End With
If sCheck = False Then
c.Select
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = c.Value
Sheets("Template").Cells.Copy
ActiveSheet.Paste
Range("A1").Select
Application.CutCopyMode = False
Sheets("Invoice Overview").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:=c.Value & "!A1",  _
TextToDisplay:=c.Value
End If
Next c
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Weitere Informationen gebe ich gerne auf Anfrage. Ansosnten erst einmal vielen Dank im Voraus für Eure/Ihre Hilfe.
VG
Marcus
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Rechnungen effizient erstellen: Mehrere Rechnungspositionen in einer Rechnung zusammenfassen


Schritt-für-Schritt-Anleitung

Um mehrere Rechnungspositionen in einer Rechnung zusammenzufassen, kannst Du folgenden VBA-Code anpassen. Dieser Code sucht nach gleichlautenden Debitorennummern und fasst die Rechnungspositionen in einer einzigen Rechnung zusammen.

  1. Öffne Deine Excel-Datei mit den Rechnungsrohdaten.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Füge den folgenden Code in das Modul ein:
Sub CreateCombinedInvoice()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim invoiceDict As Object
    Set invoiceDict = CreateObject("Scripting.Dictionary")

    ' Daten aus "Invoice Overview" einlesen
    Set ws = ThisWorkbook.Sheets("Invoice Overview")
    lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row

    Dim i As Long
    For i = 9 To lastRow
        Dim debtorNumber As String
        debtorNumber = ws.Cells(i, "B").Value

        If Not invoiceDict.Exists(debtorNumber) Then
            invoiceDict.Add debtorNumber, ws.Cells(i, "C").Value ' Positionen speichern
        Else
            invoiceDict(debtorNumber) = invoiceDict(debtorNumber) & vbNewLine & ws.Cells(i, "C").Value
        End If
    Next i

    ' Rechnungen erstellen
    Dim key As Variant
    For Each key In invoiceDict.Keys
        ' Hier kannst Du den Code zum Erstellen der Rechnungen einfügen
        ' und die gesammelten Positionen aus invoiceDict(key) verwenden
    Next key

    MsgBox "Rechnungen wurden erstellt."
End Sub
  1. Passen die Zellenreferenzen an, wenn Deine Daten in anderen Spalten stehen.
  2. Führe das Makro aus, um die Rechnungen zu erstellen.

Häufige Fehler und Lösungen

  • Fehler: Es werden keine Rechnungen erstellt.

    • Lösung: Stelle sicher, dass die Zellen mit den Debitorennummern und Rechnungspositionen korrekt referenziert sind.
  • Fehler: Duplikate in Rechnungspositionen.

    • Lösung: Überprüfe den Code und stelle sicher, dass die Logik für das Speichern der Positionen funktioniert.

Alternative Methoden

Wenn Du keine VBA-Skripte verwenden möchtest, kannst Du auch folgende Methoden in Betracht ziehen:

  • Excel mehrere Rechnungen in einer Zelle: Nutze die Funktion TEXTVERKETTEN, um mehrere Rechnungspositionen in einer Zelle zusammenzufassen.
  • Rechnungsvorlagen Excel: Suche nach vorgefertigten Rechnungsvorlagen, die bereits die Möglichkeit bieten, mehrere Positionen darzustellen.

Praktische Beispiele

Ein Beispiel für eine Rechnungsaufstellung könnte so aussehen:

Debitorennummer Rechnungspositionen
12345 Position 1, Position 2
67890 Position 3, Position 4

Die Ausgabe in einer Rechnung könnte somit nur eine Rechnung pro Debitorennummer enthalten, mit allen relevanten Positionen aufgelistet.


Tipps für Profis

  • Überlege, ob du Rechnungsformular Excel-Templates verwenden kannst, um die Gestaltung zu vereinfachen.
  • Achte darauf, dass Du bei den Rechnungsnummern eine Logik implementierst, um Duplikate zu vermeiden. Dies könnte durch eine Zählung der Rechnungspositionen geschehen.

FAQ: Häufige Fragen

1. Was ist eine Debitorennummer?
Eine Debitorennummer ist eine eindeutige Kennung für jeden Kunden, die zur Identifikation in Rechnungen verwendet wird.

2. Wie kann ich Rechnungen in Excel formatieren?
Du kannst Excel Rechnungsvorlagen nutzen oder ein Rechnungsformular Excel selbst erstellen und anpassen.

3. Gibt es kostenlose Rechnungsmuster Excel?
Ja, im Internet findest Du viele kostenlose Rechnungsmuster, die Du herunterladen und anpassen kannst.

4. Wie kann ich mehrere Rechnungen in einer Zelle zusammenfassen?
Nutze die Funktion TEXTVERKETTEN oder VBA, um mehrere Rechnungspositionen in einer Zelle zu kombinieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige