Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: vba Zeilen duplizieren ab aktiver Zeile bis letzte Zeile

vba Zeilen duplizieren ab aktiver Zeile bis letzte Zeile
25.04.2024 18:41:19
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
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: vba Zeilen duplizieren ab aktiver Zeile bis letzte Zeile
25.04.2024 18:45:38
{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
25.04.2024 19:00:49
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



Anzeige
AW: vba Zeilen duplizieren ab aktiver Zeile bis letzte Zeile
25.04.2024 19:10:50
{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
25.04.2024 19:36:09
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
Anzeige
AW: vba Zeilen duplizieren ab aktiver Zeile bis letzte Zeile
25.04.2024 19:22:02
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
Anzeige
AW: vba Zeilen duplizieren ab aktiver Zeile bis letzte Zeile
25.04.2024 19:54:43
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
26.04.2024 09:56:10
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
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige