HERBERS Excel-Forum - das Archiv
vba Zeilen duplizieren ab aktiver Zeile bis letzte Zeile
Frank201517
Hallo zusammen,

ich bin sehr dankbar für eine Hilfe:
Ich möchte in einer Excel-Liste eine Zeile aktivieren (Cursor in die Zeile) und dann per Button ein Makro aktivieren welches:
Die Zeilen unterhalb der aktivierten Zeile dupliziert, also kopiert und darunter einfügt. Dies bis zur letzten nicht leeren Zeile des Blattes.

xxxxxxxMit Cursor aktivierte Zeilexxxxxx
xxxxxxxxxxxx11111
xxxxxxxxxxxx22222
xxxxxxxxxxxx33333
xxxxxxxxxxxx44444
xxxxxxxxxxxx55555

xxxxxxxMit Cursor aktivierte Zeilexxxxxx
xxxxxxxxxxxx11111
xxxxxxxxxxxx11111
xxxxxxxxxxxx22222
xxxxxxxxxxxx22222
xxxxxxxxxxxx33333
xxxxxxxxxxxx33333
xxxxxxxxxxxx44444
xxxxxxxxxxxx44444
xxxxxxxxxxxx55555
xxxxxxxxxxxx55555

Ganz vielen Dank im Voraus!
Frank
AW: vba Zeilen duplizieren ab aktiver Zeile bis letzte Zeile
{Boris}
Hi,

Dein Beispiel hat mit "duplizieren" aber nichts zu tun - die Werte sind immer unterschiedlich (11111, 22222 etc.)
Bring mal bitte ein wenig Speck an Deine Frage - am Besten mit einer kleinen Beispieldatei.

VG, Boris
AW: vba Zeilen duplizieren ab aktiver Zeile bis letzte Zeile
Frank201517
Hallo Boris,

vielen Dank für Deine Meldung.
Ich versuch's mal mit dem Speck :-):
Das Makro sollte die Zeile unterhalb der markierten Zeile kopieren und darunter einfügen (Doppeln), dann die nächste Zeile prüfen ob Leer, wenn nicht Leer, auch dies Zeile kopieren und darunter einfügen, nächste Zeile prüfen ob Leer, kopieren und darunter einfügen, nächste Zeile prüfen ob Leer etc, etc. Dies bis zur letzten nicht Leeren Zeile.

vorher:
xxxxxxxMit Cursor aktivierte Zeilexxxxxx
xxxxxxxxxxxx11111
xxxxxxxxxxxx22222
xxxxxxxxxxxx33333
xxxxxxxxxxxx44444
xxxxxxxxxxxx55555

nachher:
xxxxxxxMit Cursor aktivierte Zeilexxxxxx
xxxxxxxxxxxx11111
xxxxxxxxxxxx11111
xxxxxxxxxxxx22222
xxxxxxxxxxxx22222
xxxxxxxxxxxx33333
xxxxxxxxxxxx33333
xxxxxxxxxxxx44444
xxxxxxxxxxxx44444
xxxxxxxxxxxx55555
xxxxxxxxxxxx55555

Ist das so brauchbar erklärt? Hoffe ja.
Lieben Dank, Frank



AW: vba Zeilen duplizieren ab aktiver Zeile bis letzte Zeile
{Boris}
Hi,

Ist das so brauchbar erklärt?

Bei "VBA nur mit Recorder" leider nicht. Lad doch mal eben eine kleine Beispieldatei hoch - mit manuell eingetragenem Wunschergebnis in einer Nachbarspalte.

VG, Boris
AW: vba Zeilen duplizieren ab aktiver Zeile bis letzte Zeile
Frank201517
Hallo Boris,

ich habe schon etwas Erfahrung mit vba ...
Benötige für die Aufgabe wohl eine Schleife, wie in etwa dieser Code hier:

Sub Zeilen_Verdoppeln()
Dim wkstemp As Worksheet, Menge As Long, Titel As Long, i As Long
Set wkstemp = ActiveSheet
Menge = wkstemp.UsedRange.Rows.Count
Titel = InputBox("Wie viele Zeilen ist die Überschrift hoch?")
For i = Menge To Titel + 1 Step -1
Rows(i).Insert Shift:=xlDown
Rows(i + 1).Copy Rows(i)
Next
End Sub

Dieser Code jedoch 'hängt sich auf' bei längerer Liste mit 200/300 Zeilen.
Ich kann leider nicht sagen warum.
Gibt es da einen verbesserten Code, eine verbesserte Herangehensweise?

Grüße, Frank
AW: vba Zeilen duplizieren ab aktiver Zeile bis letzte Zeile
GerdL
Hi Frank!
Sub Unit()



Dim x As Long, a As Long


x = ActiveCell.Row

For a = Cells(Rows.Count, "A").End(xlUp).Row To x + 1 Step -1
Rows(a).Insert shift:=xlDown
Rows(a + 1).Copy Rows(a)
Next


End Sub

Gruß Gerd
AW: vba Zeilen duplizieren ab aktiver Zeile bis letzte Zeile
Frank201517
Hallo Gerd,

das ist es! Super.
Habe noch die Spaltenangabe "A" angepasst, da Spalte A in meiner Liste in der Regel leer ist.

Vielen, vielen Dank - Toll.
Grüße, Frank
AW: vba Zeilen duplizieren ab aktiver Zeile bis letzte Zeile
daniel
HI
ist die Liste sortierbar?
wenn ja, würde ich so vorgehen:

dim Zeile1 As Range

dim Zeile2 as Range

set Zeile1 = ActiveCell.EntireRow
set Zeile2 = Cells(rows.count, 1).end(xlup).EntireRow

with Range(Zeile1, Zeile2)
.Copy Destination:=Zeile2.Offset(1, 0)
.Resize(.Rows.count * 2).sort Key1:=.cells(1, 1), order1:=xlascending, header:=xlno
end with

das ist in großen Tabellen etwas schneller als Zeilenweise jede Zeile einzufügen.
Gruß Daniel