Hallo liebe Forengemeinde,
ich habe bin gerade dabei sowas wie ein "Lager" für Daten zu bauen. Hintergrund meines Vorhabens ist der, dass in einer Range, die variabel groß sein kann, Daten stehen, die gespeichert und (falls gewünscht) wieder zurückgeschrieben werden müssen. Ich hab anhand folgenden Codes es geschafft die Daten in der Zwischenablage zu speichern. Ausgang des Ganzen ist Zelle Z4 (daher nicht von den +x Werten in den Schleifen irritieren lassen).
Sub StoreValues()
Dim data As DataObject
Dim nRows As Integer, nCells As Integer, nRow As Integer, nCell As Integer
Set data = New DataObject
Dim Text As String
nRows = Range("Z65536").End(xlUp).Row - 3
For nRow = 1 To nRows
nCells = Range("Z4").End(xlToRight).Column - 25
For nCell = 1 To nCells
Text = Text & Trim(Cells(nRow + 3, nCell + 25).Text) & ";"
Next nCell
Text = Text & vbLf
Next nRow
data.SetText Text
data.PutInClipboard
End Sub
Nun möchte ich, dass der Anwender die Möglichkeit hat, genau diese Daten zurückholen zu können.
Ich möchte also, dass Mittels eines Codes an der Stelle Z4 die Daten angefangen werden zu schreiben und mit jedem Semikolon in dem Datensatz der Zwischenablage eine neue Zelle angesprochen wird und am Ende der jeweiligen Zeile der Daten, eine neue Zeile in dem Sheet beschrieben wird.
Vielen Dank im voraus für eure Antworten
ich habe bin gerade dabei sowas wie ein "Lager" für Daten zu bauen. Hintergrund meines Vorhabens ist der, dass in einer Range, die variabel groß sein kann, Daten stehen, die gespeichert und (falls gewünscht) wieder zurückgeschrieben werden müssen. Ich hab anhand folgenden Codes es geschafft die Daten in der Zwischenablage zu speichern. Ausgang des Ganzen ist Zelle Z4 (daher nicht von den +x Werten in den Schleifen irritieren lassen).
Sub StoreValues()
Dim data As DataObject
Dim nRows As Integer, nCells As Integer, nRow As Integer, nCell As Integer
Set data = New DataObject
Dim Text As String
nRows = Range("Z65536").End(xlUp).Row - 3
For nRow = 1 To nRows
nCells = Range("Z4").End(xlToRight).Column - 25
For nCell = 1 To nCells
Text = Text & Trim(Cells(nRow + 3, nCell + 25).Text) & ";"
Next nCell
Text = Text & vbLf
Next nRow
data.SetText Text
data.PutInClipboard
End Sub
Nun möchte ich, dass der Anwender die Möglichkeit hat, genau diese Daten zurückholen zu können.
Ich möchte also, dass Mittels eines Codes an der Stelle Z4 die Daten angefangen werden zu schreiben und mit jedem Semikolon in dem Datensatz der Zwischenablage eine neue Zelle angesprochen wird und am Ende der jeweiligen Zeile der Daten, eine neue Zeile in dem Sheet beschrieben wird.
Vielen Dank im voraus für eure Antworten