Clever-Excel-Forum

Normale Version: Makros erstellen - Werte in ein anderes Datenblatt kopieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo in die Runde Blush ,

ich habe folgendes Problem, welches ich und ChatGPT nicht lösen können:

Ich habe in einem Datenblatt (Name: Datenanalyse (automatisch)) Werte die ich in ein anderes Datenblatt (Name: Datenspeicherung (automatisch)) kopieren möchte. 
Die Werte aus dem Quelldatenblatt werden im Endresultat durch unterschiedliche Formeln berechnen also werden am Ende des Tages nicht händisch eingetragen.
Um diese Daten "zu speichern" möchte ich jeden Wert in eine festdefinierte Zelle (Zeile) im Zieldatenblatt kopieren lassen indem ich auf einen Button (Steuerelement) klicke.

In der Musterdatei habe ich die Werte schon Mal übertragen und nochmal dahinter geschrieben woher die Werte kommen. Die Werte sind wie man sehen kann Prozentangaben,
normale Zahlen und ein Datum.

Ich bekomme es, dass mit einmaligen betätigen die Daten kopiert werden, indem ich einfach ein Makros aufzeichne. (wahrscheinlich nicht sehr originell). Das Schwierige kommt jetzt.
Ich möchte, dass mit jedem Betätigen des Buttons die Werte kopiert werden. Wenn bereits Daten vorhanden sind soll die nächst leere Spalte rechts genutzt werden. Vielleicht ist es sinnvoll immer abzuprüfen, ob bereits ein Datum in der ersten Zelle vorhanden ist, ansonsten kann diese Spalte genutzt werden.

Leider habe ich nach Stunden des Probierens und einer hitzigen Diskussion mit ChatGPT keine Lösung finden können. 
Ich hoffe ich konnte mein Problem verständlich darlegen und hoffe dass es jemand da draußen gibt der mir helfen kann!

Schon einmal vielen Dank an jeden der sich dran versucht!!

VG Felix
Hallo,

weise deiner Schaltfläche das folgende Makro zu
Code:
Sub x()
Dim arr As Variant
Dim i As Long
Dim j As Long
Dim col As Long

arr = Worksheets("Datenanalyse (automatisch)").Range("A1:F42")

With Worksheets("Datenspeicherung (automatisch)")
  col = .Cells(1, Columns.Count).End(xlToLeft).Column + 1
  .Cells(1, col) = arr(3, 2)
  j = 2
  For i = 6 To 15
   
    .Cells(j, col) = arr(i, 6)
    j = j + 2
  Next i
  For i = 19 To 28
    .Cells(j, col) = arr(i, 6)
    j = j + 2
  Next
 
  For i = 32 To 42
    .Cells(j, col) = arr(i, 3)
    j = j + 1
  Next
End With
End Sub


VG Juvee
Hi Juvee,

ja okay verrückt - ich danke dir!!

VG Felix
Hallo,

ich habe gerade bemerkt, dass ich die Sache noch etwas weiter treiben muss indem ich aus einer weiteren Spalte Werte kopieren muss. 
Ich habe vor zuvor die Daten bereits einmal zugewiesen und die Quellzelle nochmals dahinter geschrieben. Kannst du mir hierbei weiterhelfen?

VG Felix