Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1876to1880
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
Zeile x-mal duplizieren und einfügen
25.03.2022 12:48:50
HaraldT
Hallo zusammen,
für einen Datenimport benötige ich ein Makro, das eine Excel-Tabellenzeile x-mal kopiert.
D.h. es soll einfach Zeile 1 x-mal unter Zeile 1 kopiert werden,l also x-mal eingefügt.
Dann soll Zeile die (ursprüngliche Zeile 2) wieder x-mal direkt unter die Zeile 2 kopiert werden.
Ich würde das händisch machen, allerdings ist das eine sehr große Tabelle, und ich muss das regelmäßig machen.
Vielen dank für euer Hilfe.

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile x-mal duplizieren und einfügen
25.03.2022 13:00:16
Daniel
Hi
Händisch geht das so recht einfach:
1. wenn die Liste kein Sortierkriterium enthält, fügst du eine Hilfsspalte mit der Zeilennummer an, am einfachsten über Einfügen - Reihe, oder per Formel =Zeile() oder einfach 1 und 2 in die ersten beiden Zellen schreiben und dann nach unten ziehen (Doppelklick auf rechte untere Ecke des Markierungsrahmens)
Bei Verwendung der Formel kopieren und als Wert einfügen nicht vergessen.
2. jetzt markiert und kopierst du den ganzen Block.
3. fürs Einfügen markiert du jetzt einen Zellbereich, der 10x so viele Zeilen hat. Das geht am einfachsten, in dem du die Zelladresse ins Namensfeld oben links eingibst.
Wenn also der Bereich A1:J45 ist, markiertes du darüber A1:J450 (x10 ist einfach) und fügst dann ein.
Excel vervielfacht hier die Werte.
4. um die richtige Reihenfolge zu bekommen, sortierst du nach der Hilfsspalte.
Gruß Daniel
Anzeige
AW: Zeile x-mal duplizieren und einfügen
25.03.2022 14:26:27
Daniel
Das kann man natürlich auch per Makro machen.
wenns schon eine Sortierspalte gibt die man verwenden kann so (Spalte beim Sortieren ggf anpassen):

Sub Duplizieren()
Const Faktor As Long = 10
With Range("A1").CurrentRegion
.Copy
.Resize(.Rows.Count * Faktor).PasteSpecial xlPasteAll
End With
Range("A1").CurrentRegion.Sort key1:=Cells(1, 1), order1:=xlAscending, Header:=xlNo
End Sub
wenn man das Sortierkriterium zum zurücksortieren noch einfügen muss, dann so:

Sub Duplizieren()
Const Faktor As Long = 10
With Range("A1").CurrentRegion
With .Columns(.Columns.Count + 1)
.Formula = "=Row()"
.Formula = .Value
End With
End With
With Range("A1").CurrentRegion
.Copy
.Resize(.Rows.Count * Faktor).PasteSpecial xlPasteAll
End With
With Range("A1").CurrentRegion
.Sort key1:=.Cells(1, .Columns.Count), order1:=xlAscending, Header:=xlNo
.Columns(.Columns.Count).ClearContents
End With
End Sub
Gruß Daniel
Anzeige
AW: Zeile x-mal duplizieren und einfügen
25.03.2022 14:47:52
HaraldT
Super, das funktioniert schon mal bestens, vielen Dank!
Die Script-Lösung schau ich mir später noch mal an, jedenfalls hast du mir sehr weitergeholfen....
AW: Zeile x-mal duplizieren und einfügen
25.03.2022 16:59:17
onur
Warum noch offen?
AW: Zeile x-mal duplizieren und einfügen
25.03.2022 13:05:34
UweD
Hallo

Sub kopieren()
Dim LR As Long, i As Long, Z1 As Integer, Sp As Integer, x As Integer
Z1 = 1 'ggf Überschrift beachten
Sp = 1 'Daten in Spalte A
x = InputBox("Anzahl der Kopien?", , 2)
If x = 0 Then Exit Sub
With Application
.ScreenUpdating = True
.Calculation = xlManual
End With
With ActiveSheet
LR = .Cells(.Rows.Count, Sp).End(xlUp).Row 'letzte Zeile der Spalte
For i = LR To Z1 Step -1
.Rows(i).Copy
.Rows(i + 1).Resize(x).Insert xlDown
Next
End With
With Application
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
End With
End Sub
LG UweD
Anzeige
AW: Zeile x-mal duplizieren und einfügen
25.03.2022 13:12:14
ChrisL
Hi
Nur ein Tick von mir, alles mit Power-Query zu versuchen d.h. die Lösung muss man nicht unbedingt verwenden :)
https://www.herber.de/bbs/user/152031.xlsx
Import oder Export - kommt immer drauf an wo man steht. Wenn Daten regelmässig von einer externen Quelle nach Excel importiert werden, dann könnte eine PQ-Lösung tatsächlich sinnvoll sein.
cu
Chris
AW: eine weitere alternative Variante hierzu ...
25.03.2022 17:52:59
neopa
Hallo Chris,
... wäre der Einsatz der Funktion List.Repeat(). Dies hab ich mal bei Günther hier: http://www.excel-ist-sexy.de/pq-zeilen-vervielfaeltigen-wiederholen/ "aufgeschnappt"
Gruß Werner
.. , - ...
Anzeige
sehr schön, gefällt mir
25.03.2022 18:06:40
ChrisL
Hi Werner
Danke für den Input. List.Repeat() ist eleganter und wenn es mehrere Spalten zur Wiederholung gibt, dann wäre es Table.Repeat()
https://docs.microsoft.com/en-us/powerquery-m/table-repeat
Zudem fällt mir noch auf, dass man mit der geschweiften Klammer direkt eine einzelne Spalte als Liste extrahieren kann.
= List.Repeat({[Name]},[Anzahl])
(bisher habe ich in dieser Situation immer zuerst unnötigerweise gruppiert)
cu
Chris
AW: dazu nachgefragt ...
25.03.2022 19:47:44
neopa
Hallo Chris,
... sowohl mit Deiner Lösung als auch mit List.Repeat() kann man auch schon Datensätze mehrspaltiger Tabellen duplizierten.
Jedoch benötige ich mit List.Repeat() interaktiv zusammengestellt momentan für das hiesige Beispiel noch zwei Zusatzschritte gegenüber Deiner Lösung, siehe https://www.herber.de/bbs/user/152044.xlsx. Wie würdest Du die maßgeblich Anzahl gleich in die Anweisung mit List.Repeat() integrieren, so dass die Zusatzschritte entfallen?
Unklar ist mir auch noch, wozu Table.Repeat() wirklich gut ist. Kannst Du den Unterschied zu List.Repeat() an Hand der vorliegenden Beispieldatei mal bitte aufzeigen oder macht hier der Einsatz von Table.Repeat() gar keinen Sinn?
Ich schau erst morgen wieder hier nach. Wünsche jetzt erst einmal noch einen schönen Abend.
Gruß Werner
.. , - ...
Anzeige
Beispiele PQ Table.Repeat()
28.03.2022 08:41:49
ChrisL
Hi Werner
Hier die gewünschten Beispiele (jeweils fix verdoppelt 2xRepeat ohne Resultatsausgabe). In Bezug auf Performance machen die 3 Varianten m.E. keinen Unterschied.
Beispiel 1:
Wenn es mehrere Quellen gibt, dann tendiere ich darauf, erstmal nur für jede Quelle eine Verbindung zu erstellen. Danach eine neue leere Abfrage (oder eine neue Kombi). Durch die Trennung von Quellen und Abfragen kann m.E. die Übersichtlichkeit erhöht werden. Zudem kann man die Quellen bereinigen (z.B. Spalten selektieren, Typenkonvertierung) und dann für mehrere Abfragen wiederverwenden.
So mindestens die Theorie. Ganz konsequent mache ich es auch nicht u.a. weil das Vorgehen vielleicht für Fragesteller im Forum unklar sein könnte.
Beispiel 2:
In letzter Zeit habe ich damit experimentiert verschieden Funktionen zu verschachteln (hier direkt die Quelle in der Befehlszeile mit der Funktion umschlossen). Macht zwar die Abfrage/Code kürzer, aber wird dafür schnell undurchschaubar. Dennoch, wenn man den Code komprimieren möchte, wäre dies ein Ansatz.
Beispiel 3:
Direkte Programmierung im erweiterten Editor.
Abstrakte Beispiele:
https://www.herber.de/bbs/user/152084.xlsx
Anwendungsbeispiel:
https://www.herber.de/bbs/user/152085.xlsx
cu
Chris
Anzeige
AW: eine Nachfrage dazu ergibt sich mir noch ...
28.03.2022 10:17:00
neopa
Hallo Chris,
... aber zunächst, vielen Dank für Deine beiden Dateien. Das erklärt mir schon fast alles und ist eine gute Hilfe. :-)
Noch nicht verstanden hab ich jedoch, worin Du den Unterschied zwischen der Abfrage "Ergebnis1" und "Ergebnis3" siehst?
Gruß Werner
.. , - ...
AW: eine Nachfrage dazu ergibt sich mir noch ...
28.03.2022 13:00:47
ChrisL
Hi Werner
Gerne...
Beispiel 1 beinhaltet zwei separate Abfragen und Beispiel 3 nur eine Abfrage. Aber schlussendlich sind alle drei Varianten sehr nahe beieinander. Die Unterschiede sind letztlich nur Feinheiten und es ist eine Frage der persönlichen Präferenz z.B. ob man den Quellbezug und die Abfrage trennen will oder nicht; oder ob man lieber kürzt/verschachtelt oder Zwischenschritte machen will.
cu
Chris
Anzeige
AW: danke, hab eine Weile gebraucht owT
28.03.2022 14:04:09
neopa
Gruß Werner
.. , - ...

7 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige