Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Daten kopieren aus einer Rechnungsvorlage in eine gesamte

Forumthread: Daten kopieren aus einer Rechnungsvorlage in eine gesamte

Daten kopieren aus einer Rechnungsvorlage in eine gesamte
18.03.2026 13:21:15
mckater
Jo wieder mal Baustelle aber alles easy,

Ein sicherlich kleines Problem!
Also ich habe eine Rechnung und mit VBA mach ich dann in einem externen Tabellenblatt alle Daten rein....alles, von Brutto, Netto usw.
Alles gut.....
Funktioniert auch super!
Aber bei der nächsten Rechnung müssen die Daten ja nicht überschrieben werden sondern anfangen ab der nächsten leeren Zeile
Ein Beispiel für denn Kopiervorgang nur mit Brutto.
Das Problem liegt darin, weil F2 gebunden ist und wie kann man das so machen, das F2 im VBA immer nach der letzten Zeile sucht und nicht F2 ist?

Sub KopiereWerteBrutto()
Dim src As Range
Set src = ThisWorkbook.Names("Ber_Brutto").RefersToRange
' Werte direkt übertragen
ThisWorkbook.Worksheets("Einnahmen").Range("F2").Resize(src.Rows.Count, src.Columns.Count).Value = src.Value
End Sub


Im Prinzip habe ich eine tolle Rechnungserstellung, aber ich will ja bei jeder Rechnung mit VBA dem dann sagen, kopiere bei jeder Rechnung das rein.
Aber das ist dann halt nicht F2, weil die nächste F3 wäre usw.
Er soll runter gehen und das einfügen wo die leere Zeile ist.

Gruß aus dem sonnigen Ösiland,
mckater
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten kopieren aus einer Rechnungsvorlage in eine gesamte
18.03.2026 13:32:00
Uduuh
Hallo,
statt Range("F2")
Cells(rows.count,6).end(xlup).offset(1)

Gruß aus'm Pott
Udo
AW: Daten kopieren aus einer Rechnungsvorlage in eine gesamte
18.03.2026 18:51:37
daniel
Hi
noch zwei Tipps:
1. auf definierte Namen kann man auch einfach über RANGE zugreifen.
Set src = Range("Ber_Brutto")

allerdings sollte man das so nur machen, wenn man mit einer Datei arbeitet, bei mehreren wirds problematisch

2. bei einer Wertzuweisung mit Copy-Paste braucht man zwar eine Zeile mehr, aber es ist nicht mehr notwendig, den Zielzellbereich in der Größe anzupassen.
es reicht dann im Prinzip folgendes, um die Werte aus dem benannten Bereich in die nächste leere Zeile zu übernehmen.
Range("Ber_Brutto").Copy

ThisWorkbook.Worksheets("Einnahmen").Cells(Rows.Count, "F").End(xlup).Offset(1, 0).pastespecial xlpastevalues


Gruß Daniel
Anzeige
AW: Daten kopieren aus einer Rechnungsvorlage in eine gesamte
19.03.2026 06:26:44
mckater
Moin aus dem Ösiland,
bedanke mich sehr für so großes Interesse an meinem Beitrag!
Ausgangslage bei mir mal eine "alte" Rechnungsvorlage, die ich mir mal erstellt hatte.
Aber die war natürlich nicht so "modern" wie die derzeitige, wo alles verknüpft ist mit "intelligenten Tabellen" usw.
Derzeit habe ich 3 Tabellenblätter: (werden aber noch mehr mit graphischer Auswertung usw.)
1 Rechnung
2 Daten
3 Einnahmen
P.S
Der VBA Code ist wichtig nach der Rechnungserstellung! Weil ein Kunde bestellt ja vielleicht nur ein Produkt oder 4 Produkte und was macht die erste Sub in VBA, er löscht mir die leeren Zeilen die man nicht braucht, sonst schaut die Rechnung schrecklich aus.
Der Code von Udo aus'n Pott funzt wunderbar und ich habe mir dazu je eine Sub erstellt, die, die Daten überträgt in den Einnahmen, und sucht sich auch immer die nächste Leere Zeile aus.
Im Prinzip muss ich nur die Produkte mit Dropdownliste in der Rechnungsvorlage auswählen, was der Kunde bestellt, die Menge eingeben.
Dann halt vorher noch die Kundennummer mit Dropdownliste auswählen und fertig ist die "Party"
Nun auf das VBA "Butterl" drücken und alles wird dann übertragen wie verschönert.


In den Daten gebe ich halt alles ein, da stehen die ganzen Produkte, Nettopreise, USt, Kunden,...also alles was man braucht.
Das alles sind intelligente Tabellen und aller erhalten bei mir einen Namen wie bei mir bei Kunden: Ber_Kunden usw
Das ist wichtig! Weil würde ich das nicht tun ihnen einen Namen zu geben, werden die Daten nicht aktualisiert im Tabellenblatt "Rechnung"
In der Rechnung verweise ich dann den Bereichen also =Ber_Kunden
Habe das aber anders gemacht!!!! Mich interessiert in der Rechnung nur die KUNDENNUMMER! Die ich mit Daten/Datenüberprüfung/Liste den Namen Ber_Kundennummer zuweise.
Somit, wenn ich in den Daten immer mehr Einträge habe, werden die auch in der Rechnung angezeigt.

Dann bestücke ich die Zellen in der Rechnung mit Xverweisen! somit ist immer alles aktualisiert, sobald die Kundennummer ausgewählt wird im Tabellenblatt "Rechnung"
Es stellte sich die Frage? Wenn ich 3 gleiche Kunden habe? Einfach und hinter dem Xverweis was eingeben und er nimmt vom Kunden immer die Letze, weil die alten brauchen wir ja nicht mehr.

Ich brauche in der Rechnungsvorlage nur mehr die Produkte auswählen was der Kunden haben, wie viel Stück pro Produkt und alles ist so organisiert, ich bekomme gleich Nette, USt, MwSt, Brutto Betrag und ganz wichtig unten listet er mir dann auch noch die USt von 20%, 13%, 10% auf.
Wichtig, später am Ende des Jahres für die Abgaben an das Finanzamt.

Im Tabellenblatt "Einnahmen" wird das alles erfasst bis auf die Produkte, was der Kunde bestellt hat, dafür haben wir ja die Rechnung.
Dieses Tabellenblatt "Einnahmen" wird ein großer Diener sein für andere Auswertungen über Verkauf pro Monat, Jahr usw. (nächste Baustelle, aber sicherlich lösbar)
Eventuell ein Dashboard erstellen, wäre auch eine Möglichkeit!!!!
Wenn man die Rohdateien hat, ist man so was aber im Vorteil mit Auswertungen.

LG mckater
Anzeige
AW: Daten kopieren aus einer Rechnungsvorlage in eine gesamte
18.03.2026 19:19:39
schauan
... und zum Schönermachen dann vielleicht noch der Hinweis

Cells(Rows.Count, "F")
wäre besser mit
Cells(Rows.Count, 6)
zu programmieren Warum?

1) Excel rechnet intern mit Spaltennummern, muss aus dem F also erst eine 6 machen. Zum Glück geht das schneller als wenn man's an den Fingern abzählt ;-)
2) wird hier zwar nicht genutzt, aber in Schleifen usw. lassen sich bei Cells Zeilen und Spalten einfach mit den variablen Schleifenzählern (Zahlen) ansprechen - das mit den Zahlen kann man üben, wenn man hier die 6 nimmt
3) Wenn man gerne mit Buchstaben arbeitet, wäre
Range("F" & Rows.Count)
eine alte Naive ;-)
Anzeige
AW: Daten kopieren aus einer Rechnungsvorlage in eine gesamte
18.03.2026 19:26:54
daniel
ja
aber das Range("F" & Rows.Count) jetzt wirklich die bessere Alternative ist, müsstest du mal konkret begründen.
wie oft muss man das ausführen, um einen messbaren Zeitunterschied zwischen Cells(1, 1) oder Cells(1, "A") zu erhalten?

bei Cells kann man Spaltenbuchstaben und Spaltennummer gleichermaßen verwenden, und man wird in der Regel das verwenden, was einem das Verständnis des Codes leichter macht.
Für eine konkrete, feste Spaltenansprache wird man, wenn man mit Excel und der A1-Adressierungsart vertraut ist, vielleicht eher auf die Buchstaben gehen (vorallem bei höheren Spaltenbereichen, denn wer weiß schon, welche Spaltennnummer die die Spalte CX (beispielsweise) hat und wird so bei einem Testlauf diese Spalte dann schneller in der Tabelle finden
die Spaltennummer wird man eher dann wählen, wenn man mit berechneten Spalten arbeitet oder sowieso lieber in Z1S1-Adressen denkt und arbeitet.

Gruß Daniel
Anzeige
AW: Daten kopieren aus einer Rechnungsvorlage in eine gesamte
18.03.2026 14:36:41
mckater
Du weißt schon das du mir mal eine fast Letzte Hürde genommen hast.
Ein perfektes Excel Rechnungsprogramm.
Das geht super!
Es klappt super und ohne meckern....
Auch wenn es nur kleine Codes sind...das ist super!

Lg aus dem Ösiland,
Weil ich komme nicht aus dem Pott und bin zwar Wassermann der nicht tauchen kann.
LG mckater, Danke, geile Info und wie ich sehe klappt es gut!
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige