Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1616to1620
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

Bereich mit Variable in anderes Sheet kopieren

Bereich mit Variable in anderes Sheet kopieren
04.04.2018 17:03:26
Manuel
Hallo Community,
ich brauche eure Hilfe.
Ich schreibe an einem Makro, bei dem (in einer Schleife) ein mit Variablen definierter Bereich vom Sheet "Entwicklung 1" in das Sheet "Entwicklung 2" kopiert werden soll. Dabei habe ich (auch aus diesem Forum) bereits einige Ansätze und Tipps versucht, die jedoch nicht funktioniert haben,bzw. ich mit meinem Anfängerwissen in VBA nicht verstanden oder anpassen habe können.
Der aktuelle Code wäre dieser Hier:

Dim iCounter As Integer
Dim ENDE
ENDE = 10
For iCounter = 1 To ENDE
Dim X
Dim Y
Dim Z
Dim A
A = 1000
Z = 19
X = iCounter + 5
Y = (iCounter * 4) + 6
Dim Rng2Copy As Range, Rng2Paste As Range
Set Rng2Copy = Sheets("Entwicklung 1").Range(ActiveWorkbook.Sheets("Entwicklung 1").Cells(Y,  _
Z), ActiveWorkbook.Sheets("Entwicklung 1").Cells(Y, A))
Set Rng2Paste = Sheets("Entwicklung 2").Range(ActiveWorkbook.Sheets("Entwicklung 2").Cells(X, _
Z), ActiveWorkbook.Sheets("Entwicklung 2").Cells(X, A))
Dim aWerte()
aWerte() = Rng2Copy
Rng2Paste = aWerte()
DoEvents
If iCounter = ENDE Then
X = iCounter + 6
Set Rng2Copy = ActiveWorkbook.Sheets("Entwicklung 1").Range("A1:A1000").Value
Set Rng2Paste = Sheets("Entwicklung 2").Range(ActiveWorkbook.Sheets("Entwicklung 2").Cells( _
X, 1), ActiveWorkbook.Sheets("Entwicklung 2").Cells(X, A))
aWerte() = Rng2Copy
Rng2Paste = aWerte()
DoEvents
End If
DoEvents
Next iCounter

Mein ursprünglicher Ansatz, der leider (WARUM ?!?) nicht geklappt hat wäre gewesen:

ActiveWorkbook.Sheets("Entwicklung 2").Range(Cells(X, 1),Cells(X, A)) = ActiveWorkbook.Sheets(" _
Entwicklung 1").Range(Cells(Y, Z),Cells(Y, A)).Value
Ich hoffe, ihr könnt mir auf einem sehr niedrigen Niveau mit meinem Problem weiterhelfen. Vielen Dank schon mal.
Gruß

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bereich mit Variable in anderes Sheet kopieren
04.04.2018 17:06:11
Manuel
Das Problem ist im Übrigen ein " Laufzeitfehler 1004 Anwendungs- oder objektdefinierter Fehler"
Copy statt = Zuweisung
04.04.2018 17:12:06
EtoPHG
Hallo Manuel,
Bereiche kannst du nicht zuweisen, sondern musst du kopieren:
ActiveWorkbook.Sheets("Entwicklung 1").Range(Cells(Y, Z),Cells(Y, A)).Copy _
Destination:=ActiveWorkbook.Sheets("Entwicklung 2").Range(Cells(X, 1),Cells(X, A))

...ob das in Abhängigkeit deiner Variablen-Inhalte für Zeilen/Spalten stimmt, kann ich allerdings nicht garantieren.
Gruess Hansueli
AW: Copy statt = Zuweisung
04.04.2018 17:24:23
Manuel
Hallo Hansueli
Direkt mal ein großes Dankeschön für die schnelle Antwort. Dieses Ansatz habe ich auch schon versucht, klappt jedoch auch nicht (selber Laufzeitfehler)
Anzeige
AW: Copy statt = Zuweisung
04.04.2018 17:44:04
Hajo_Zi
Das kann auch nicht klappen das zweite Range bezieht sich auf Sheets("Entwicklung2") und cells auf die aktuelle Tabelle.
bei m ersten analog.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
AW: Copy statt = Zuweisung
04.04.2018 17:49:23
Manuel
Hättest du einen Vorschlag, wie ich das Problem lösen könnte ? Meine VBA-Kenntnisse hören an dieser Stelle nämlich leider auf :/.
MfG
AW: Copy statt = Zuweisung
04.04.2018 17:53:36
Hajo_Zi
schreibe vor Cells auch die Tabelle wie vor Range.
Das dürfte doch klar sein?

AW: Copy statt = Zuweisung
04.04.2018 17:55:06
Robertus
ja klar :
Sub SetEqual()
With ThisWorkbook
.Worksheets(2).Range("deine Range hier") = .Worksheets(1).Range("deine Range to copy from"). _
Value
End With
End Sub

Anzeige
Dann mal richtig (vielleicht ;-)
04.04.2018 19:15:13
EtoPHG
Hallo
Das gerade mir ein Referenzierungsfehler durch die Lappen geht, ist auf meine zunehmende Senilität zurückzuführen.
     Dim wsZiel as Worksheet
Dim wsQuelle as Worksheet
Set wsZiel = ActiveWorkbook.Sheets("Entwicklung 2")
Set wsQuelle = ActiveWorkbook.Sheets("Entwicklung 1")
WsQuelle.Range(WsQuelle.Cells(Y, Z),WsQuelle.Cells(Y, A)).Copy _
Destination:=wsZiel.Range(wsZiel.Cells(X, 1),wsZiel.Cells(X, A))
Gruess Hansueli
AW: Dann mal richtig (vielleicht ;-)
04.04.2018 23:24:42
Manuel
Hallo Hansueli,
nochmal Dankeschön, habe deinen Code jetzt probiert, aber auch hier werden mir (beim Debugging - Einzelschritt) die letzten beiden Zeilen als Laufzeitfehler angezeigt. Ich weiß ehrlich gesagt nicht, wo der Fehler liegen könnte, darum wollte ich alle an dieser Stelle fragen, ob es ein Problem mit meinen Variablen sein könnte?
Den ganzen Code habe ich ja bereits veröffentlicht, ich deklariere meine Variablen so:

Dim iCounter As Integer
Dim ENDE
ENDE = 10
For iCounter = 1 To ENDE
Dim X
Dim Y
Dim Z
Dim A
A = 1000
Z = 19
X = iCounter + 5
Y = (iCounter * 4) + 6
und deklariere anschließend die Bereiche mit Cells, in denen ich die Variablen nenne. Könnte hierbei etwas fehlerhaft sein? Immerhin sind eure Lösungen ja "richtig" bzw. ich wüsste wirklich nicht, wo ein Fehler ist, und das macht mich wahnsinnig !
Danke noch einmal im voraus, ich bin gespannt auf euer / dein Feedback :/.
mfg
Anzeige
AW:ich baue das nicht nach. Mappe biite!
05.04.2018 07:49:40
EtoPHG

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige