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

Forumthread: Copy Paste in Schleife

Copy Paste in Schleife
16.03.2021 17:44:22
Mario
Hallo liebe Excel Community,
seit mehreren Jahren finde ich hier Lösungen für meine Excel Probleme, aber bei diesem, wahrscheinlich einfachen Thema, finde ich nicht die richtigen Suchbegriffe... daher frage ich jetzt mal persönlich nach :)
Also es geht darum in einer Tabelle mit 3 Spalten nach jedem neuen Datum die vorherigen Einträge zu kopieren, neue Zeilen einzufügen und dann das Datum zu aktualisieren.
Die Rohtabelle sieht so aus:
Name Anzahl Datum
Hans 5 01.02.2020
Simone 10 05.04.2020
Stefan 6 07.04.2020
Brigitte 3 01.05.2020
Nach der Aktion muss die Tabelle wie folgt aussehen
Name Anzahl Datum
Hans 5 01.02.2020
Hans 5 05.04.2020
Simone 10 05.04.2020
Hans 5 07.04.2020
Simone 10 07.04.2020
Stefan 6 07.04.2020
Hans 5 01.05.2020
Simone 10 01.05.2020
Stefan 6 01.05.2020
Brigitte 3 01.05.2020
Ich weiss, das macht auf den ersten Blick keinen Sinn, aber ich muss die Daten in diese Form bringen, damit ich Daten in eine Datenbank importieren kann. Es soll ein Portfolio erstellt werden mit historischen Bestandsverläufen.
Am besten wäre es, wenn auch noch addiert werden könnte:
Wenn also Hans nochmal mehr im Einheiten im Bestand hat:
Die Rohtabelle sähe so aus:
Name Anzahl Datum
Hans 5 01.02.2020
Simone 10 05.04.2020
Stefan 6 07.04.2020
Hans 5 08.04.2020
Brigitte 3 01.05.2020
Nach der Aktion muss die Tabelle wie folgt aussehen
Name Anzahl Datum
Hans 5 01.02.2020
Hans 5 05.04.2020
Simone 10 05.04.2020
Hans 5 07.04.2020
Simone 10 07.04.2020
Stefan 6 07.04.2020
Hans 10 08.04.2020
Simone 10 08.04.2020
Stefan 6 08.04.2020
Hans 10 01.05.2020
Simone 10 01.05.2020
Stefan 6 01.05.2020
Brigitte 3 01.05.2020
Jetzt bin ich gespannt, ob das recht einfach zu lösen ist oder ob es kompliziert wird.
Wie auch immer, schon mal vielen Dank für Euren Input!
LG Mario

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Copy Paste in Schleife
16.03.2021 17:46:50
onur
Tolle Beschreibung, aber die (Beispiels-) Datei wäre wirklich hilfreich.

AW: Copy Paste in Schleife
16.03.2021 18:31:48
Daniel
Hi
die von mir erkannte Logik funktioniert so:
der Code geht durch die Liste durch
dabei werden zwei Schritte durchgeführt:
zuerst wird jede Zeile einzeln kopiert
danach werden alle Zeilen von der ersten Zeile bis zur aktuellen Zeile kopiert und unten eingefügt, dabei wird das Datum der zuletzt kopierten Einzelzeile übernommen.
als Code für deine Beispieldatei so:
Sub test()
Dim Zelle As Range
Dim Start As Range
Set Start = Range("A4")
For Each Zelle In Range(Start, Start.End(xlDown))
Zelle.Resize(, 3).Copy
Cells(Rows.Count, 6).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Range(Start, Zelle).Resize(, 3).Copy
Cells(Rows.Count, 6).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Selection.Columns(3).Value = Selection.Columns(3).Cells(1, 1).Offset(-1, 0).Value
Next
End Sub
zur Ausführung die Zellen unterhalb von F3 leeren.
dieser Code funktioniert so nur in der Aktiven Datei.
in deiner Beispieldatei fehlt für den den letzten Eintrag noch der zweite Schritt.
Diesen führt das Marko aber aus.
Gruß Daniel

Anzeige
AW: Copy Paste in Schleife
17.03.2021 10:40:18
Mario
Hallo Daniel,
erstmal vielen Dank für Deinen Code, der in der Beispieldatei funktioniert. Leider in meiner Produktivdatei nicht und ich kann nicht genau sagen, wieso. Daher lade ich nun mal mein Ergebnis hoch.
Ich dachte, ich beschreibe mein Problem mit Hans uns Simone, statt mit den Wertpapierkennummern.
Also es ist eine Inventurdatei für Wertpapiere, um die Historie eines Portfolios nachvollziehen zu können.
Am Tag 1 sind also "diese" Wertpapiere im Portfolio. Am Tag zwei dann "diese" und "jene" Wertpapiere und so weiter und so fort. Deswegen brauche ich auch die Addition, wenn sich der Wertpapierbestand unterjährig positiv verändert.
Eventuell sind in meiner Datei das Datumsformat anders. Die kopierten Zeilen verschieben sich quasi datumsmäßig.
In meiner jetzt verlinkten Inventurdatei habe ich die Fehler farblich markiert und kommentiert.
https://www.herber.de/bbs/user/144880.xlsm
Das Makro sollte auch dabei sein.
Vielen dank für weitere Lösungsansätze!
LG Mario

Anzeige
AW: Copy Paste in Schleife
17.03.2021 20:16:54
Yal
Hallo Mario,
im Prinzip schon aber ...
Es gibt 3 Art von Daten: Stammdaten (hier ISIN und Datum), Bewegungsdaten (Hier irritierenderweise "Bestand") und Bestandsdaten. Letztere ist das Summierung der Bewegungsdaten zu ein bestimmte Zeitpunkt: Startbestand (=Erstzugang) + Zugang bis Zpkt - Abgang bis Zpkt.
Anders gesagt, es macht -es ist nur meine Meinung- wenig Sinn, die Daten zu vermehren, diese müssen nur sinnvoll ausgewertet werden.
Mein Vorschlag:
_ füge über der Liste 2 Zeilen
_ in der erste trage dein gewünschte Auswertungsdatum
_ füge zu den Daten eine zusätzliche Spalte "Auswertung" mit einer Formel, die prüft, ob das Einkaufdatum kleiner gleich als das Auswertungsdatum ist. Es ergibt Wahr/Falsch.
_ mache eine Pivottabelle: Auswertung als Filter auf "Wahr" gestellt, Bestand als Werte. Ev. ISIN als Zeilenüberschrift , muss aber nicht, wenn Du nur die Summe brauchst. ISIN, die doppelt vorkommen werden summiert.
So kannst Du das Auswertungsdatum beliebig anpassen und im Pivottabelle den Bestand zum gegebenen Zeitpunkt sehen. Du muss nur die Pivottabelle aktualisieren. Ohne Code.
Und Du kannst anstatt den "Bestand", die Bewegungen eintragen: Zukauf positiv, Verkauf negativ. Dann könnte man anstatt eine Auswertungsdatum eine "Start" und "Enddatum" verwenden.
VG
Yal

Anzeige
AW: Copy Paste in Schleife
18.03.2021 14:00:13
Mario
Danke Yal,
danke für Deinen Ansatz, leider brauche ich auf Excel Basis keine Auswertung, sondern nur die Auflistung.
Diese Tabelle muss ich dann in eine Software importieren, die durch diese Tabelle das Portfolio erstellt.
Das Portfolio in der Software funktioniert nicht mit Kauf- oder Verkaufstransaktionen, sondern nur mit den Beständen zu den bestimmten Tagen.
Daher benötige ich auch keine Substraktionen sondern nur den Bestand zu diesem speziellen Tag.
Die Rohdaten bekomme ich aus dem Export einer anderen Liste, die mir die aktuellen Bestände liefert, mit den Datums der letzten Transaktion. daher weiss ich, an welchem Tag, welche Position im Depot war und muss da nun nur noch in das Importformat für die Software bekommen.
LG Mario

Anzeige
AW: Copy Paste in Schleife
18.03.2021 13:46:59
Daniel
Hi
nach deiner Beschreibung ist das Ergebnis korrekt.
bei Wertpapieren bin ich raus, bitte wende dich an einen Profi, den du auch korrekt für seine Dienstleistung bezahlst.
Gruß Daniel
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Daten in Excel: Copy Paste in Schleife


Schritt-für-Schritt-Anleitung

Um die gewünschte Tabelle durch eine Schleife in Excel zu erstellen, kannst du den folgenden VBA-Code verwenden. Dieser Code kopiert die Daten aus deiner Tabelle und fügt sie entsprechend der geforderten Struktur ein:

Sub test()
    Dim Zelle As Range
    Dim Start As Range
    Set Start = Range("A4") ' Setze den Startpunkt deiner Daten

    For Each Zelle In Range(Start, Start.End(xlDown))
        Zelle.Resize(, 3).Copy
        Cells(Rows.Count, 6).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
        Range(Start, Zelle).Resize(, 3).Copy
        Cells(Rows.Count, 6).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
        Selection.Columns(3).Value = Selection.Columns(3).Cells(1, 1).Offset(-1, 0).Value
    Next
End Sub

Führe diesen Code in der Excel-VBA-Umgebung aus, um die Daten zu kopieren und in der gewünschten Form anzuzeigen. Achte darauf, dass du die Zellen unterhalb von F3 leerst, bevor du das Makro ausführst.


Häufige Fehler und Lösungen

  1. Datumsformat stimmt nicht überein:

    • Überprüfe das Datumsformat in deiner Tabelle. Möglicherweise müssen die Zellen formatiert werden, um das richtige Format zu verwenden.
  2. Code funktioniert nicht in der Produktivdatei:

    • Stelle sicher, dass du die richtigen Bereiche im VBA-Code angegeben hast. Vergewissere dich, dass die Daten in der richtigen Struktur vorliegen.
  3. Kopierte Daten verschieben sich:

    • Achte darauf, dass du alle Schritte im Code korrekt ausführst. Die Schleife sollte die Daten wie gewünscht kopieren und einfügen.

Alternative Methoden

Wenn du keine VBA-Methoden verwenden möchtest, gibt es Alternativen:

  1. Manuelles Copy-Paste:

    • Du kannst die Daten manuell kopieren und einfügen, aber dies ist zeitaufwändig und nicht effizient.
  2. Formeln:

    • Verwende Formeln, um die Daten an den gewünschten Stellen anzuzeigen. Zum Beispiel kannst du die Funktion WENN verwenden, um zu überprüfen, ob ein Datum größer ist und entsprechend den Wert zu kopieren.
  3. Pivot-Tabellen:

    • Erstelle Pivot-Tabellen, um die Daten besser auszuwerten, anstatt sie in einer langen Liste zu führen. Hierbei kannst du auch die Bewegungsdaten analysieren.

Praktische Beispiele

Angenommen, du hast folgende Rohdaten:

Name Anzahl Datum
Hans 5 01.02.2020
Simone 10 05.04.2020
Stefan 6 07.04.2020
Brigitte 3 01.05.2020

Nach Ausführung des Codes sollte deine Tabelle wie folgt aussehen:

Name Anzahl Datum
Hans 5 01.02.2020
Hans 5 05.04.2020
Simone 10 05.04.2020
Hans 5 07.04.2020
... ... ...

Die Werte werden entsprechend dem Datum kopiert, sodass du die Stammdaten, Bewegungsdaten und Bestandsdaten in der gewünschten Form hast.


Tipps für Profis

  • Verwende Tastenkombinationen: Nutze Ctrl + C und Ctrl + V, um schnell zu kopieren und einzufügen. Dies kann besonders nützlich sein, wenn du große Datenmengen manuell bearbeiten musst.
  • Lege eine Vorlage an: Wenn du regelmäßig mit ähnlichen Daten arbeitest, erstelle eine Vorlage, die du immer wieder verwenden kannst.
  • Automatisierung: Überlege, ob du andere Prozesse in Excel automatisieren kannst, um Zeit zu sparen.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass meine Daten korrekt kopiert werden?
Überprüfe regelmäßig die Struktur deiner Daten und stelle sicher, dass die Zellformate stimmen.

2. Was tun, wenn der Code nicht funktioniert?
Überprüfe den Code auf Syntaxfehler und stelle sicher, dass du den richtigen Bereich in deiner Tabelle angegeben hast.

3. Kann ich das Copy-Paste ohne VBA durchführen?
Ja, du kannst Daten manuell kopieren und einfügen, aber es ist weniger effizient als die Verwendung eines Makros.

4. Welche Excel-Version benötige ich für das VBA-Skript?
Das Skript sollte in den gängigen Excel-Versionen wie Excel 2016 und später funktionieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige