PDA

Vollständige Version anzeigen : Zeilen kopieren und definierte Anzahl einsetzten


supermario73
31.08.2017, 07:50
Hallo Excel Gemeinde
Nun habe ich auch eine Aufgabe, bei der ich anstehe da meine VBA Kenntnisse nicht genügend sind:

In einer Tabelle (Tab1) Zelle A2 soll eine Zahl drin stehen z.B 5.

Nun soll das Makro in einer anderen Tabelle (Tab2) die ganze Zeilen 4 bis 7
kopieren und 5 (Zahl in Tab1, A2) mal hintereinander einsetzten.

Hat jemand Rat für uns?

Besten Dank für Eure Hilfe

silcono
31.08.2017, 08:30
Kannst mal ausprobieren, vielleicht muss du noch die Tabellennamen anpassen:


Sub test()

Dim Anzahl As Integer
Dim i As Long
Dim inLetzte As Integer

Anzahl = Worksheets("Tabelle1").Range("A2").Value


For i = 1 To Anzahl

inLetzte = IIf(IsEmpty(Worksheets("Tabelle2").Cells(4, Worksheets("Tabelle2").Columns.Count)), Worksheets("Tabelle2").Cells(4, Worksheets("Tabelle2").Columns.Count).End(xlToLeft).Column, Worksheets("Tabelle2").Columns.Count)
Worksheets("Tabelle2").Range("A4:A7").Copy
Worksheets("Tabelle2").Cells(4, inLetzte + 1).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False

Next i

End Sub


Grüße
Silcono

aloys78
31.08.2017, 08:43
Hallo,
... kopieren und 5 (Zahl in Tab1, A2) mal hintereinander einsetzten.
Ab welcher Zeile und in welcher Tabelle ?

Gruß
Aloys

supermario73
31.08.2017, 08:54
@Silcono
Besten Dank für die schnelle Antwort und Hilfe!
Die Zeilen werden hinter die Zeilen kopiert.

Die Idee ist, dass die komplette Zeilen 4 5 6 und 7 kopiert werden und auf die Zeile 8 9 10 und 11 kopiert werden. (A2= 1)

Beispiel A2 = 4
Es soll die komplette Zeilen 4 5 6 und 7 kopiert werden
und auf die Zeile 8 9 10 und 11 kopiert werden
und auf die Zeile 12 13 14 und 15 kopiert werden
und auf die Zeile 16 17 18 und 19 kopiert werden
und auf die Zeile 20 21 22 und 23 kopiert werden

@Aloys
Ab Zeile 8 Tabelle (Tab2)


Besten Dank für Eure Hilfe!!

supermario73
31.08.2017, 08:57
@Silcono
Besten Dank für die schnelle Antwort und Hilfe!
Die Zeilen werden hinter die Zeilen kopiert.

Die Idee ist, dass die komplette Zeilen 4 5 6 und 7 kopiert werden und auf die Zeile 8 9 10 und 11 eingefügt werden. (A2= 1)

Beispiel A2 = 4
Es soll die komplette Zeilen 4 5 6 und 7 kopiert werden
und auf die Zeile 8 9 10 und 11 eingefügt werden
und auf die Zeile 12 13 14 und 15 kopiert werden
und auf die Zeile 16 17 18 und 19 kopiert werden
und auf die Zeile 20 21 22 und 23 kopiert werden

@Aloys
Ab Zeile 8 Tabelle (Tab2)


Besten Dank für Eure Hilfe!!

silcono
31.08.2017, 09:19
Ich hoffe, ich habe dich jetzt richtig verstanden:

Sub test()

Dim Anzahl As Integer
Dim i As Long

Anzahl = Worksheets("Tabelle1").Range("A2").Value


For i = 1 To Anzahl

Worksheets("Tabelle2").Range("A4:A7").Copy
Worksheets("Tabelle2").Cells(Worksheets("Tabelle2").Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False

Next i

End Sub

aloys78
31.08.2017, 09:27
Hallo,

mein Vorschlag:
Option Explicit

Sub Kopieren()
Dim n As Long, z As Long, i As Long
n = Worksheets("Tabelle1").Range("A2")
z = 8

With Worksheets("Tabelle2")
For i = 1 To n
.Rows("4:7").Copy .Range("A" & z)
z = z + 4
Next i
End With
End Sub
Gruß
Aloys

supermario73
31.08.2017, 10:37
Hallo Aloys

Funktioniert Perfekt, die Zeilen werden kopiert und unten eingesetzt.

Besten Dank für die schnelle Hilfe!!