HERBERS Excel-Forum - das Archiv

Thema: Daten einfügen aus anderem Sheet

Daten einfügen aus anderem Sheet
Andre
Hallo ich habe in dem Sheet "qu" 5 Datensätze
jeweils ein Titel und dann Datum

https://www.herber.de/bbs/user/168856.xlsx

Ich möchte am besten mit einem Makro
in das sheet "Video Neu" den Titel und DANEBEN das Datum einfügen
(beginnend mit der Spalte O für den Titel und Spalte Q für das Datum
und zwar jeweils beim Einfügen in der Zeile beginnen - wo der Curser steht
(als hier in der O5)

und so weiter auch mit den anderen 5 Titeln mit Datum

Wichtig ist mir, dass das Einfügen immer dort in O beginnt wo der Cursor steht.
Damit daten nicht überschrieben werden, wenn ich weitere aus "Qu" einfügen will.

Wie könnte das Makro aussehen ?
lg Andre
AW: Daten einfügen aus anderem Sheet
Yal
Hallo Andre,

so könnte das Makro aussehen.

Sub Übertragen()

Dim i As Long
Dim Titel(1 To 5) As String
Dim Datum(1 To 5) As String

For i = 1 To 5
With Worksheets("qu")
Titel(i) = .Cells(3 * (i - 1) + 1, 1).Value
Datum(i) = .Cells(3 * (i - 1) + 2, 1).Value
End With
Next
With Worksheets("Video neu")
.Cells(5, "O").Resize(5, 1) = Application.Transpose(Titel)
.Cells(5, "Q").Resize(5, 1) = Application.Transpose(Datum)
End With
End Sub


VG
Yal
AW: Daten einfügen aus anderem Sheet
Andre
danke es kappt dieses aber leider nur einmal - wenn ich dann die nächsten 30 daten einfüge - überschreibt er die alten mit den ersten 5 von den nächsten 30 - obwohl ich ja in der ja wollte, dass die daten die ich neue einfügte anschließend eingefügt werden sollen :( - ich schaue mir deine 2.Lösung jetzt an.
AW: Daten einfügen aus anderem Sheet
Yal
Man könnte aber auch so machen

Sub Übertragen()

Dim wsZ As Worksheet 'Z für Ziel
Dim i As Long

Set wsZ = Worksheets("Video neu")
With Worksheets("qu")
For i = 1 To 5
wsZ.Cells(i + 4, "O") = .Cells(3 * (i - 1) + 1, 1).Value
wsZ.Cells(i + 4, "Q") = .Cells(3 * (i - 1) + 2, 1).Value
Next
End With
End Sub


VG
Yal

AW: Daten einfügen aus anderem Sheet
Andre
ja auch bei dem überschreibt er immer nur die ersten 5 - auch wenn ich neue daten einfüge

Ziel wäre:
Er fügt solange daten ein bis er nach der Leerzeile auf eine weitere Trifft also keine neuen mehr drinnen sind
und 2. dass der die Daten dort einfügt wo jeweils der Curser im sheet video neu steht einfügt.
Aber als erster Ansatz mal super:) danke
AW: Daten einfügen aus anderem Sheet
Yal
Hallo Andre,

Sub Übertragen()

Dim wsZ As Worksheet 'Z für Ziel
Dim i As Long

Set wsZ = Worksheets("Video neu")
With Worksheets("qu")
For i = 1 To 5
With wsZ.Range("O99999").End(xlUp)
.Offset(1, 0) = .Cells(3 * (i - 1) + 1, 1).Value
.Offset(1, 2) = .Cells(3 * (i - 1) + 2, 1).Value
End With
Next
End With
End Sub


Wichtig: die Zelle qu!O4 darf nicht leer sein. Es reicht einen Leerzeichen oder besser -weil sichtbar- einen Punkt. Sonst geht der End(xlUp) zu weit nach oben (nur bei der ersten übertragung, danach irrelevant)

VG
Yal
AW: Daten einfügen aus anderem Sheet
Andre
nein leider habe in video neu - das meintest du in o4 den Punkt gemacht - weil aus qu kommen ja die daten

Dann zb auf o8 den cursor platziert und das makro das du mir jetzt geschickt hat gestartet.

Es macht jetzt nur einen Punkt in o5

https://www.herber.de/bbs/user/168871.xlsm

lg Andre


AW: Daten einfügen aus anderem Sheet
Yal
Hallo Andre,

Lese dieses Code, bis Du jeden einzelnen Punkte verstanden hast,was da passiert. Sonst können wir nicht weiter.
Es geht nicht darum, dass ich liefere, was sich in deiner Vorstellung abspielt, sondern einen Code, der entspricht, was ich verstanden habe was Du erwartest.
Wenn es nicht macht, was du willst, musst Du den Code eben anpassen.

Wir sind "Helfer", aber keine persönliche Assistent. Ohne deine Mitwirkung, wird es sehr viele Schleife geben, bis es passt. Und gelernt wirst Du dabei nichts.

VG
Yal
AW: Daten einfügen aus anderem Sheet
Andre
danke für Deine Mühe
AW: Daten einfügen aus anderem Sheet
schauan
Hallöchen,

um bei der ursprünglichen Aufgabenstellung zu bleiben - im Prinzip müsst doch beim einfügen nur die ersten 5er im ersten Codevorschlag durch ActiveCell.Row ersetzt werden.

Wichtig ist mir, dass das Einfügen immer dort in O beginnt wo der Cursor steht.

also
...

With Worksheets("Video neu")
.Cells(ActiveCell.Row, "O").Resize(5, 1) = Application.Transpose(Titel)
.Cells(ActiveCell.Row, "Q").Resize(5, 1) = Application.Transpose(Datum)
End With
...


1)
wobei ich wg. der Aufgabenstellung davon ausgehe, dass sich der TE beim Ausführen des Makros auf dem neuen Blatt befindet
--> sonst müsste man die Zeile anders feststellen
--> bräuchte man kein With, also kürzer
...

Cells(ActiveCell.Row, "O").Resize(5, 1) = Application.Transpose(Titel)
Cells(ActiveCell.Row, "Q").Resize(5, 1) = Application.Transpose(Datum)
...


2)
wobei das natürlich nicht das Problem beseitigt, dass man zufälligerweise anderswo, in einer unerwünschten Zeile, steht :-(
AW: Daten einfügen aus anderem Sheet
Andre
danke es klappt nun alles lg Andre