mit Excel Makro Zellen kopieren

Baris

Grünschnabel
hallo.
will mit dem Makro bestimmte Zellbereiche mehrfach kopieren. Und die kopierten Bereiche nach unten einfügen.
Vor jedem Kopiervorgang ändern sich die Zelleninhalte. Nur mein Makro nimmt das einmal und fügt den kopierten (gleichen Wert) mehrmal.
siehe Datei und Makro im Anhang

als Beispiel wollte ich mit k-Schleife, den Wert von der Zelle (5,2) jedesmal verändern:
Leider nimmt die Zelle (5,2) den letzten K-Wert:5

Sub Makro1()
'
' Makro1 Makro

Dim j As Integer
Dim k As Integer

For j = 4 To 60 Step 6
For k = 1 To 5
Cells(5, 2) = k

Range(Cells(4, 1), Cells(4 + Cells(2, 2).Value + 3, 1 + Cells(1, 2).Value)).Select
Selection.Copy

Range("A" & j + Cells(2, 2).Value + 4).Select
ActiveSheet.Paste

Next k

Next j
 

Anhänge

  • test1_für tutorials.7z
    35,8 KB · Aufrufe: 32
Also wenn du das Makro z.B. mit F5 startest, dann wirst du nicht erkennen können das die Zelle die verschiedenen Werte von k annimmt, das läuft vermutlich viel zu schnell ab. Beim Testen mit F8 wird der Wert nämlich korrekt geändert!

Ansonsten istmir nicht so ganz klar was du da kopieren willst und wo es eingefügt werden soll. Vielleicht klappt es auch nicht weil in einer der Zellen mit denen du das Range-Objekt bilden willst einen ungültigen Wert enthält!?
 
hallo,
erstmal danke für Deine Antwort.
die "k" bekommt verschiedene werte. Aber was ich will ist. z.B. Zelle (5,2) =k
Diese Zelle ist innerhalb von meinem kopierten Bereich: (z.B. Range cells(4,1),cells(9,7)
Der Makro soll einmal diesen Bereich kopieren, und unten einfügen, K=1 oder zelle(5,2) =1
dann bekommt der k den Wert 2, diesmal muss der Makro die Zelle (5,2)=2 machen und gleiche Zellenbereiche (z.B. Range cells(4,1),cells(9,7)
wieder neu kopieren und unten (oder unterhalb von dem 1. eingefügten Bereich wieder einfügen)
Das Einfügen habe ich mit der Schleife "j" realisiert und funktioniert gut.
was nicht funktioniert ist, das einmal die Zellenbereiche kopiert werden und dann mehrmals eingefügt werden.
Mein Wunsch wäre gleichen Bereich mehrmal kopieren und einfügen.

danke für die Unterstützung
 
Du durchläufst ja 5 mal die K-Schleife und innerhalb dieser Schleife wird kopiert und eingefügt.

Zum Einfügen verwendest du aber den Wert der J-Schleife:

Visual Basic:
Range("A" & j + Cells(2, 2).Value + 4).Select
ActiveSheet.Paste

Da wirst du wohl anstatt "A" & j einfach "A" & k schreiben müssen. Zumindest wird der ausgewählte Bereich dann mehrmals an unterschiedlichen Stellen eingefügt.
 
hallo,
das ist richtig, aber ich wollte mit "k"Schleife jedesmal einen Wert) im ausgewählten Bereich verändern. (z.B. Zelle (5,2)=k k=1 bis 5
Und der Makro sollte jedesmal den alten Bereich kopieren, aber jedesmal ist im alten Kopierbereich eine zelle (hier Zelle (5,2) mit neuem Wert.
Der Makro kopieren den alten Bereich (mit neuem Wert) fügt in ein bestimmter Bereich ein
Dann kopiert den nächsten alten Bereich mit neuem k Wert und fügt diese in einem weiteren Bereich ein.
usw.
Wenn ich nur die j Schleife gegen k ersetze, dann kopiert der Makro einen Bereich und fügt diese Merhfach in unterschiedlichen Bereichen ein.

Vielem dank

Grüße
 
Kannst du mal deine Datei mit ein paar Beispieldaten im Excel 2000 Format speichern und gegen die obige Datei austauschen.

Dann vielleicht noch in eine zweite Tabelle das gewünschte Ergebnis zur Not von Hand eintragen.

Dann könnte ich es mal damit probieren.
 
hallo,

anbei die Datei mit Beispiel von Hand, für die Version 97-2003

danke für die Zeit.

Grüße
Baris
 

Anhänge

  • test.7z
    8,6 KB · Aufrufe: 23
So, schau mal ob du damit das gewünschte Ergebnis bekommst.

Da ich nicht weiß was die Angaben bei"Anzahl Perioden" und "Anzahl Produkte" bedeuten, habe ich diese Angaben nicht berücksichtigt. Wenn das beim Kopieren eine Rolle spielt, erkläre es mal kurz.

Gruß Thomas
 

Anhänge

  • test.7z
    9,4 KB · Aufrufe: 50
Zurück