Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1608to1612
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Copy und Paste mit Offset

Copy und Paste mit Offset
27.02.2018 18:50:27
Brandner
Hallo zusammen,
ich habe folgenden Code:

Sub Leerzellen2()
Dim Bereich As Range, Zelle As Range
Set Bereich = ActiveSheet.Range("A5:D18000")
Dim Zeile As Integer
Dim x As Integer
Dim y As Variant
Dim z As Variant
x = Sheets("RVO").Range("A4").Value
For Each Zelle In Bereich.SpecialCells(xlCellTypeBlanks)
y = Zelle.Row
z = Cells(y - 1, 1).Value
Zeile = Sheets("RVO").Range("f18:f18000").Find(What:=z).Row
  Sheets("RVO").Range(Cells(Zeile, 10), Cells(Zeile, 62 - x)).Copy
Sheets(k).Range(Cells(y, 5), Cells(y, 48)).Paste
Sheets(k).Cells(y, 1).Value = Sheets(k).Cells(y - 1, 1).Value
Next Zelle
End Sub

Ich komme bis zu der fett markierten Zeile.
Mein Problem ist das er mir das kopierte aus dem sheet "RVO" nicht in sheets(k) einfügt. Gleichzeitig habe ich noch das Problem das die Endspalte immer Spalte 48 ist. Spalte fünf sich aber bei jeder Aktualisierung um eine Spalte nach rechts beim einfügen bewegen soll.
Kann mir hier vllt jemand weiterhelfen?
Vielen Lieben Dank!
Hier wären noch meine anderen Codes die in dieser Arbeitsmappe ausgeführt werden:
Dim k As Integer
Sub execute()
Dim blatt As Variant
k = 3
Do While k Sheets(k).Activate
Call leerzeilen2
Call Leerzellen2
k = k + 1
Loop
End Sub
Sub leerzeilen2()
Dim i As Long
Dim lastrow As Long
lastrow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
For i = lastrow To 3 Step -1
If ActiveSheet.Cells(i, 1).Value = "" Or ActiveSheet.Cells(i - 1, 1).Value = "" Then
ElseIf ActiveSheet.Cells(i, 1).Value ActiveSheet.Cells(i - 1, 1).Value Then
Rows(i).Insert
End If
Next i
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Copy und Paste mit Offset
27.02.2018 19:12:10
Hajo_Zi
Range bezieht sich auf Sheets("RVO") und Cells auf die aktuelle das geht nicht.
Arbeite mit With

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung....."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben,
mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Anzeige
AW: Copy und Paste mit Offset
27.02.2018 19:12:47
Werner
Hallo,
hier:
Sheets(k)
benutzt du eine Variable "k". Die ist in deinem Code aber nirgends Deklariert, geschweige denn ist ihr ein Wert zugewiesen. Die Variable "k" ist also leer. Und ein Blatt mit dem Namen "" kannst du nicht ansprechen, gibt es nicht.
Gewöhne dir mal an, oberhalb deiner Prozedur Option.Explicit einzutragen, dann müssen alle Variablen deklariert werden. Wenn du das vergisst, dann wirst du angemeckert.
Ansonsten lade bitte eine Beispielmappe hoch.
Gruß Werner
AW: Copy und Paste mit Offset
28.02.2018 06:15:48
Gerd
Moin
'.............
Dim aa As Long
Sheets("RVO").Range(Sheets("RVO").Cells(Zeile, 10), Sheets("RVO").Cells(Zeile, 62 - x)).Copy _
Destination:=Sheets(k).Cells(y, 5 + aa)
Sheets(k).Cells(y, 1).Value = Sheets(k).Cells(y - 1, 1).ValueSheets(k).Cells(y, 1).Value
aa = aa + 1
Gruß Gerd
Anzeige
AW: Copy und Paste mit Offset
28.02.2018 16:00:01
Brandner
Hallo,
ich habe die Variable "k" in einem vorherigen Code deklariert. Hat so eigentlich funktioniert das dadurch alle Tabellenblätter durchgearbeitet werden. Hier nochmal mein kompletter Code. Und im letzen Abschnitt funktioniert eben das paste in die einzelnen Tabellenblätter und der Versatz nicht. Meine Wochenrange geht jetzt von Woche 9 bis Woche 52. Und wenn ich nächste Woche ein Upadate mache dann sollen die neuen Daten eben in die neu generiert Zeile eingefügt werden von Woche 10 bis 52, dann 11 bis 52, usw. Sodann quasi ein Wasserfallchart entsteht.
Danke!
Dim k As Integer
Sub execute()
Dim blatt As Variant
k = 3
Do While k 
Sub leerzeilen2()
Dim i As Long
Dim lastrow As Long
lastrow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
For i = lastrow To 3 Step -1
If ActiveSheet.Cells(i, 1).Value = "" Or ActiveSheet.Cells(i - 1, 1).Value = ""  _
Then
ElseIf ActiveSheet.Cells(i, 1).Value  ActiveSheet.Cells(i - 1, 1).Value Then
Rows(i).Insert
End If
Next i
End Sub

Sub Leerzellen2()
Dim Bereich As Range, Zelle As Range
Set Bereich = Sheets(k).Range("A5:D18000")
Dim Zeile As Integer
Dim x As Integer
Dim y As Variant
Dim z As Variant
x = Sheets("RVO").Range("A4").Value
For Each Zelle In Bereich.SpecialCells(xlCellTypeBlanks)
y = Zelle.Row
z = Cells(y - 1, 1).Value
Zeile = Sheets("RVO").Range("f18:f18000").Find(What:=z).Row
Sheets("RVO").Range(Cells(Zeile, 10), Cells(Zeile, 62 - x)).Copy
Sheets(k).Range(Cells(y, 5), Cells(y, 48)).Paste
Sheets(k).Cells(y, 1).Value = Sheets(k).Cells(y - 1, 1).Value
Next Zelle
End Sub

Anzeige
Beispielmappe bitte
02.03.2018 20:05:09
Werner
Hallo,
mach mal eine Beispielmappe mit deinem Quellblatt und zumindest einem Zielblatt. Im Zielblatt bitte ein paar Datensätze eintragen, so wie dur dir das Ergebnis vorstellst.
Gruß Werner

251 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige