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

Makro wiederholung

Forumthread: Makro wiederholung

Makro wiederholung
04.02.2025 20:08:52
Ballsi
Ich benötige ein Makro welches in der Tabelle 1 die Zeilen 4+5 kopiert und unterhalb wieder einfügt. Der Vorgang soll entsprechend dem Wert in Tabelle 2 Zelle A3 wiederholt werden. Kann mir jemand helfen?
Anzeige

35
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Knigge
04.02.2025 20:25:35
RPP63
Hallo! (dies ist eine kurze Begrüßung)
Warum Makro? (dies ist eine kurze Rückfrage)
Dies dürfte problemlos mit einer Formel machbar sein.
Lade mal eine Datei mit Wunschergebnis hoch.

(jetzt folgt ein kurzer Gruß)
Gruß Ralf
AW: Makro wiederholung
04.02.2025 20:29:42
Yal
Moin Ballsi,

funktioniert nur gut wenn:
- in Tabelle2!A3 ein Zahl eingeben ist
- in Tabelle1 A4 und A5 nicht leer sind

Sub kopieren()

Dim i As Long

With Worksheets("Tabelle1")
.Range("4:5").Copy
For i = 1 To Worksheets("Tabelle2").Range("A3").Value
.Cells(Rows.Count, 1).End(xlUp).Offset(1).Paste
Next
End With
Application.CutCopyMode = False
End Sub
(nicht getestet. Immer auf einer Kopie zuerst probieren.)

VG
Yal
Anzeige
AW: Makro wiederholung
05.02.2025 18:53:49
Ballsi
Ich habe die Makrovorschläge beide geprüft.
Bei diesem Makro
Sub Unitkopie()
Tabelle1.Rows("4:5").Copy Destination:=Tabelle1.Rows(6).Resize(Tabelle2.Range("A3") * 2)
End Sub
ist die ganze Zeile Tabelle1 .... in Gelb und das MAkro stopt

in diesem Makro
Sub kopierentest()
Dim i As Long

With Worksheets("Tabelle1")
.Range("4:5").Copy
For i = 1 To Worksheets("Tabelle2").Range("A3").Value
.Cells(Rows.Count, 1).End(xlUp).Offset(1).Paste
Next
End With
Application.CutCopyMode = False
End Sub
hier stopt das Makro bei .Cells(Rows.Count, 1).End(xlUp).Offset(1).Paste
was muss ich tun?
Anzeige
AW: Makro wiederholung
04.02.2025 20:37:14
GerdL
Moin
Sub Unit()


Tabelle1.Rows("4:5").Copy Destination:=Tabelle1.Rows(6).Resize(Tabelle2.Range("A3") * 2)

End Sub

Gruß Gerd
AW: Makro wiederholung
27.02.2025 20:14:48
Ballsi
Ich habe noch eine Frage zum erhaltenen Makro von euch. Kann die Wiederholung des Makros ( WieOft = ) auch ersetzt werden mit der Zelle welche in der Tabelle 3 in C3 steht?

Hier das Makro

Option Explicit

Sub zeilenKopieren()
Dim i As Long
Dim rg As Range
Dim WieOft As Long
Dim lngStartZeile As Long
Dim lngEndZeile As Long
'Zeile
lngStartZeile = 4
lngEndZeile = 5
'Hier ändern
WieOft = 2
'
With Worksheets("Tabelle1")
'Wenn du die Anzahl beschränken willst
'eine
' .Range("4").Copy
'drei
' .Range("4:6").Copy
'
For i = 1 To WieOft
.Range(lngStartZeile & ":" & lngEndZeile).Copy
Set rg = .Range(.Cells(lngEndZeile, 1).Offset(1).Row & ":" & .Cells(lngEndZeile, 1).Offset(1).Row + 1)
.Range(rg.Address).Insert Shift:=xlShiftDown
'.Range(.Cells(Rows.Count, 1).End(xlUp).Offset(1).Row & ":" & .Cells(Rows.Count, 1).End(xlUp).Offset(1).Row + 1).PasteSpecial
Next
End With
Application.CutCopyMode = False
End Sub
Anzeige
AW: Makro wiederholung
27.02.2025 20:29:57
Ulf
Hi,
Tabelle3 oder Tabelle 3?!
WieOft=ThisWorkbook.Worksheets("Tabelle3").Range("C3").Value

hth
Ulf
AW: Makro wiederholung
28.02.2025 17:47:59
Ballsi
Danke für die Hilfe.
Ich habe die Zeile: WieOft = ThisWorkbook.Worksheets("uebergabe").Range("i1").Value
in das Makro integriert. Es funktioniert aber nicht ( es wird gelb ) was ist das Problem?

Sub _ab210_zeilen_einfuegen()

Dim i As Long
Dim rg As Range
Dim WieOft As Long
Dim lngStartZeile As Long
Dim lngEndZeile As Long
'Zeile
lngStartZeile = 210
lngEndZeile = 212
'Hier ändern

Rem WieOft = 2
'
WieOft = ThisWorkbook.Worksheets("uebergabe").Range("i1").Value

With Worksheets("Lage")
For i = 1 To WieOft
.Range(lngStartZeile & ":" & lngEndZeile).Copy
Set rg = .Range(.Cells(lngEndZeile, 1).Offset(1).Row & ":" & .Cells(lngEndZeile, 1).Offset(1).Row + 1)
.Range(rg.Address).Insert Shift:=xlShiftDown

Next
End With
Application.CutCopyMode = False
End Sub
Anzeige
AW: Makro wiederholung
05.02.2025 08:32:52
Ballsi
Es gibt eine Fehlermeldung, die ganze Zeile wird Gelb markiert
AW: Makro wiederholung
05.02.2025 20:46:18
Ulf
Hi,
sind Tabelle 1 und Tabelle 2 intelligente Tabellen und nicht Arbeitsblätter ?
bei Nein
Sub zeilenKopieren()

Dim i As Long
Dim rg As Range
With Worksheets("Tabelle1")
.Range("4:5").Copy
For i = 1 To Worksheets("Tabelle2").Range("A3").Value
.Range(.Cells(Rows.Count, 1).End(xlUp).Offset(1).Row & ":" & .Cells(Rows.Count, 1).End(xlUp).Offset(1).Row + 1).PasteSpecial
Next
End With
Application.CutCopyMode = False
End Sub

hth
Ulf
Anzeige
AW: Insert + copy
06.02.2025 12:03:14
GerdL
Sub Unit3()


Dim i As Long

i = Worksheets("Tabelle2").Range("A3") * 2

With Worksheets("Tabelle1")
.Rows(6).Resize(i).Insert shift:=xlShiftDown
.Rows("4:5").Copy Destination:=.Rows(6).Resize(i)
End With

End Sub
Anzeige
AW: Makro wiederholung
06.02.2025 09:59:41
Ballsi
Das Makro funktioniert gut. Das Problem ist jetzt, das die darunterliegenden Zeilen überschrieben oder übersprungen werden. Können die Anzahl Zeilen auch eingefügt werden?
AW: Makro wiederholung
06.02.2025 11:35:07
Ulf
Hi,
Radio Eriwan: im Prinzip ja, guckst Du hier


Sub zeilenKopieren()
Dim i As Long
Dim rg As Range
Dim WieOft as Long
'Hier ändern
WieOft=2
'
With Worksheets("Tabelle1")
'Wenn du die Anzahl beschränken willst
'eine
' .Range("4").Copy
'drei
' .Range("4:6").Copy
'
.Range("4:5").Copy
For i = 1 To WieOft
.Range(.Cells(Rows.Count, 1).End(xlUp).Offset(1).Row & ":" & .Cells(Rows.Count, 1).End(xlUp).Offset(1).Row + 1).PasteSpecial
Next
End With
Application.CutCopyMode = False
End Sub

Ok?
Ulf
Anzeige
AW: Makro wiederholung
06.02.2025 14:51:38
Ballsi
Entschuldigung ich meinte Dich Radio Eriwan.
Geht das mit dem eifügen?
AW: Makro wiederholung
07.02.2025 08:31:43
Ulf
Hi
nochmal mit Parameter


Option Explicit

Sub zeilenKopieren()
Dim i As Long
Dim rg As Range
Dim WieOft As Long
Dim lngStartZeile As Long
Dim lngEndZeile As Long
'Zeile
lngStartZeile = 4
lngEndZeile = 5
'Hier ändern
WieOft = 2
'
With Worksheets("Tabelle1")
'Wenn du die Anzahl beschränken willst
'eine
' .Range("4").Copy
'drei
' .Range("4:6").Copy
'
For i = 1 To WieOft
.Range(lngStartZeile & ":" & lngEndZeile).Copy
Set rg = .Range(.Cells(lngEndZeile, 1).Offset(1).Row & ":" & .Cells(lngEndZeile, 1).Offset(1).Row + 1)
.Range(rg.Address).Insert Shift:=xlShiftDown
'.Range(.Cells(Rows.Count, 1).End(xlUp).Offset(1).Row & ":" & .Cells(Rows.Count, 1).End(xlUp).Offset(1).Row + 1).PasteSpecial
Next
End With
Application.CutCopyMode = False
End Sub

hth
Ulf
Anzeige
AW: Makro wiederholung
07.02.2025 14:30:47
Ballsi
Danke das funktioniert gut. Ihr seid eine super Hilfe.
AW: Makro wiederholung
06.03.2025 13:35:11
Balsi
Danke für eure Hilfe. Ich stehe schonn wieder an.
Ich habe ein Problem mit dieser Zeile.
WieOft = ThisWorkbook.Worksheets("Tabelle1").Range("c3").Value
es funktioniert nicht.
Wo liegt das Problem?

Hier das Makro

Sub Vers_2_zeilen_einfuegen()

Dim i As Long

Dim rg As Range

Dim WieOft As Long

Dim lngStartZeile As Long

Dim lngEndZeile As Long

'Zeile

lngStartZeile = 8

lngEndZeile = 10

'Hier ändern

WieOft = ThisWorkbook.Worksheets("Tabelle1").Range("a1").Value

Rem WieOft = 2

'

With Worksheets("Tabelle2")

'Wenn du die Anzahl beschränken willst

'eine

' .Range("4").Copy



'

For i = 1 To WieOft

.Range(lngStartZeile & ":" & lngEndZeile).Copy

Set rg = .Range(.Cells(lngEndZeile, 1).Offset(1).Row & ":" & .Cells(lngEndZeile, 1).Offset(1).Row + 1)

.Range(rg.Address).Insert Shift:=xlShiftDown



Next

End With

Application.CutCopyMode = False

End Sub
Anzeige
AW: Makro wiederholung
06.03.2025 13:48:03
daniel
hi

Du schreibst: "funktioniert nicht"
das ist aber sehr allgemein (ungefähr so allgemein, wie "mach's richtig" als Hilfe)
wie macht sich dieses "funktioniert nicht" denn für dich bemerkbar?
gibt es eine Fehlermeldung in dieser Programmzeile, wenn ja welche?
wenn es keine Fehlermeldung gibt, woran erkennst du dann, dass es nicht funktioniert?

ich meine, wenn du zum Arzt gehst, beschreibst du ja auch deine Symptome und lässt diese nicht durch den Arzt erraten.

Gruß Daniel
Anzeige
AW: Makro wiederholung
06.03.2025 15:07:20
Balsi
Das Makro bleibt stehen. Es gibt keine Fehlermeldung.
Wenn

WieOft = 2 eingeschaltet ist,
dann funktioniert das Makro gut. Die Zeilen werden kopiert und eingesetzt.
aber nicht mit diese Zeile:

WieOft = ThisWorkbook.Worksheets("Tabelle1").Range("a1").Value


Anzeige
AW: Makro wiederholung
06.03.2025 15:17:09
GerdL
Du könntest in die genannte Zelle in Tabelle1 mal 2 reinschreiben.
AW: Makro wiederholung
06.03.2025 16:16:50
Balsi
ich habe in Tabelle1 zelle A1 eine 3 eingetragen. Ich habe eine Datei heraufgeladen
AW: Makro wiederholung
06.03.2025 18:20:52
balsi
Hallo Gerd
ich möchte nochmals nachfragen.
Das Makro funktioniert mit " WieOft = 2 " gut.
aber mit " WieOft = ThisWorkbook.Worksheets("Tabelle1").Range("C3").Value " nicht.
Wenn diese Zeile aktiv ist, passiert einfach nichts. Keine Meldung oder Veränderung. Habe ich da irgendwo einen Fehler drin?
In Tabelle2 sind die Zeilen 6 -24 von A - verwendet.

In Tabelle1 C3 habe ich manuel eine 3 eingetragen. Normalerweise wird diese Zahl muss automatisch berechnet werden in der Tabelle1 mit einer Formel " =ANZAHL2(Tabelle3!A:A)-5 " ich dachte es habe mit dem zu tun?
So oder so es geschieht einfach nichts.
Hier das Makro


Sub zeilen_einfuegen_b()

Dim i As Long
Dim rg As Range
Dim WieOft As Long
Dim lngStartZeile As Long
Dim lngEndZeile As Long
'Zeile
lngStartZeile = 8
lngEndZeile = 10


Rem WieOft = 2
'
WieOft = ThisWorkbook.Worksheets("Tabelle1").Range("C3").Value

With Worksheets("Tabelle2")
For i = 1 To WieOft
.Range(lngStartZeile & ":" & lngEndZeile).Copy
Set rg = .Range(.Cells(lngEndZeile, 1).Offset(1).Row & ":" & .Cells(lngEndZeile, 1).Offset(1).Row + 1)
.Range(rg.Address).Insert Shift:=xlShiftDown

Next
End With
Application.CutCopyMode = False
End Sub
Anzeige
AW: Makro wiederholung
06.03.2025 18:35:00
GerdL
Du kannst deine Datei hochladen, den Link kopieren u. diesen hier reinkopieren.
Grus Gerd


AW: Makro wiederholung
07.03.2025 08:40:00
balsi
Hallo Gerd Ich habe die Datei hinaufgeladen. Wichtig ist, dass die Kopierten Zeilen eingefügt werden und nicht kopiert. Unterhalb von Zeile 26 sind Dateien die nicht überschrieben werden dürfen.
Anzeige
AW: Makro wiederholung
07.03.2025 16:14:47
Balsi
Besten Dank für Deine Hilfe
AW: Makro wiederholung
06.03.2025 14:19:20
GerdL
Hallo Balsi!
Also, die Anzahl steht in Tabelle1 u. in Tabelle2 wird vervielfältigt.
Sub Vers_3_zeilen_einfuegen()


Dim WieOft As Long, lngStartZeile As Long, lngEndZeile As Long

lngStartZeile = 8
lngEndZeile = 10
WieOft = CLng(ThisWorkbook.Worksheets("Tabelle1").Range("a1").Value)

With Worksheets("Tabelle2")
.Range(lngStartZeile & ":" & lngEndZeile).Copy
.Cells(lngEndZeile, 1).Offset(1).EntireRow.Resize((lngEndZeile - lngStartZeile + 1) * WieOft).Insert Shift:=xlShiftDown
End With

Application.CutCopyMode = False

End Sub

Gruß Gerd
Anzeige
AW: Makro wiederholung
06.03.2025 14:21:57
GerdL
Und die Anzahl steht in A1 oder C3 ?
Gruß Gerd
AW: Makro wiederholung
06.03.2025 14:45:03
Balsi
Danke für die schnelle Antwort
Das Makro bleibt stehen und folgende Zeile wird gelb markiert:
.Cells(lngEndZeile, 1).Offset(1).EntireRow.Resize((lngEndZeile - lngStartZeile + 1) * WieOft).Insert Shift:=xlShiftDown
AW: Makro wiederholung
06.03.2025 16:25:28
balsi
Genau die Zeilen müssen eingefügt werden
Anzeige
AW: Makro wiederholung
06.03.2025 16:27:29
balsi
Die Anzahl wiederholungen steht in Tabelle1 A1
AW: Makro wiederholung
06.03.2025 14:49:20
Balsi
Ich habe in beiden Zellen eine Zahl eingetragen aber es ist A1
AW: Makro wiederholung
06.03.2025 14:51:29
GerdL
Bei mir nur wenn Wieoft Null ist.
Gruß Gerd
Anzeige
AW: Makro wiederholung
05.02.2025 09:30:05
GerdL
Salve!
In welchem Makro,
in welcher Codezeile,
welcher Fehlermeldungstext ?
cu Gerd
AW: Makro wiederholung
05.02.2025 19:47:59
Uduuh
Hallo,
Gerds Code läuft.
Tabelle2!A3 leer oder Text?

Gruß aus'm Pott
Udo
AW: Makro wiederholung
05.02.2025 20:36:20
GetdL
.. wenn die Codemamen der Tabellen stimmen u. der Code in einer Zeile steht
cu Gerd








em
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18