Frage von Hagbard1980AUT, 21

Makro: Daten in fortlaufende Zielzellen ausführen?

Guten Tag, ich muss wöchentlich in Excel exportierte Daten (Tagesumsätze) in ein anderes Excel-File kopieren. Im Export-File befinden sich die Daten immer an der selben Stelle (zB A1:B5) Um mir diese wöchentliche Kopiererei zu ersparen, hätte ich gerne ein Makro welches mir diese Daten ins Zielfile kopiert. Jedoch verschiebt sich der Zielbereich wöchentlich um 7 Zeilen Heute sollen die Daten aus A1:B5 im Zielfile nach A1:B5 kopiert werden. Nächste Woche sollen die Daten aus A1:B5 im Zielfile nach A7:B12 kopiert werden und so weiter. Also nach jedem Klicken auf den Makrobutton sollen die Daten aus einem konstanten Bereich in ein Zielfile kopiert werden bei dem sich der Bereich um 7 Zeilen verschiebt.

Lässt sich sowas bewerkstelligen? Vielen Dank und schöne Grüße

Antwort
von Britzcontrol, 8

Wenn Du, trotz Ninombre's guter Antwort, nicht weiter kommst, dann zeig uns doch mal (Bildschirmkopie incl. Spalten- und Zeilenbeschriftung), was Du bisher schon probiert hast.
Oft kann man bestehende Makros sinnvoll und zielführend ergänzen.

Oder wartest Du darauf, dass man Dir eine fix und fertige Lösung darreicht?

Wenn sich das Problem erledigt hat (Eigeninitiative oder durch GF), könntest Du hier berichten. Dann können Andere evtl. aus Deiner Lösung Nutzen ziehen..

Gruß aus Berlin

Expertenantwort
von Ninombre, Community-Experte für Excel, 17

Zwei Varianten:

1. (empfohlen, wenn nichts dagegen spricht): Die letzte verwendete Zeile ermitteln
Zielzeile=Cells(Rows.Count, 1).End(xlUp).Row+1
Die 1 steht für die Spalte, in der die letzte verwendete Zeile ermittelt wird, hier also Spalte A. +1 weil Du nicht in die letzte verwendete Zeile schreiben willst, sondern erst in die nächste (=erste freie Zeile).

Den ermittelnden Wert der "Zielzeile" kannst Du dann beim Paste verwenden:
Range("A"&zielzeile).paste oder wie auch immer Du es im Moment gelöst hast.

2. Über ein irgendwo hinterlegtes Beginndatum die Differenz zwischen dem Datum der Makroausführung und  dem Beginn ermitteln. Das macht aber nur Sinn, wenn Du ggf. Wochen überspringst und trotzdem in der Zieltabelle jede Woche vorhanden sein muss -> dann dürfte man nicht die letzte Zeile ermitteln, sondern einen fixen Abstand je Woche.

Kommentar von Iamiam ,

Bei ungleichmäßig gefüllten Tabellen, aber der Absicht, in die erste vollständig leere Zeile zu schreiben (und in die ausgewählte Spalte), bevorzuge ich

Cells(Specialcells(xllastcell).row + 1, Activecell.column).select (anstatt select ggf andere Befehle, zB Cells(...) = EinzufügenderWert

Bei Spaltenspezifischen ersten leeren Zellen (eine Zelle in der gewünschten Spalte auswählen):

Cells(Activesheet.rows.count, activecell.column).end(xlup).offset(1,0)  Auch das bleibt eine virtuelle Auswahl, verursacht also keine Cursorbewegung.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten