Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Zeilen mehrfach hintereinander einf.

VBA Zeilen mehrfach hintereinander einf.
15.12.2015 20:15:31
Hermann
Hallo zusammen,
in meinem Tabellenblatt Tabelle1 befinden sich 45 Zeilen in denen verschiedene Werte und Formeln eingetragen sind.
Nun möchte ich diesen "Zeilenblock" kopieren und beginnend ab Zeile 46 mehrfach einfügen. Die Anzahl der einzufügenden "Zeilenblöcke" (wie oft mehrfach)soll über eine Imputbox eingegeben werden. Ich bekomme diesen scheinbar einfachen Code leider nicht hin. Den VBA-Code per Makrorekorder möchte ich nicht verwenden. Die Schleife läuft leider nur 1x durch, warum auch immer. Vielleicht kann mir von Euch jemand behilflich sein.
lGH

Sub ZeilenEinfügen()
Dim rngRowsCopy As Range
Dim rngRowsInsertCopy As Range
Dim byteBlockanzahl As Byte
Const conCopyRow As Long = 1
Const conCopyRowCount As Long = 45
Const conInsertRow As Long = 46
byteBlockanzahl = InputBox("Bitte Anzahl eingeben.")
Set rngRowsCopy = Rows(conCopyRow).Resize(conCopyRowCount)
Set rngRowsInsertCopy = Rows(conInsertRow). _
Resize(rngRowsCopy.Rows.Count * byteBlockanzahl)
For i = 1 To byteBlockanzahl
rngRowsCopy.Copy Destination:=rngRowsInsertCopy
Next
Set rngRowsCopy = Nothing
Set rngRowsInsertCopy = Nothing
End Sub

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Zeilen mehrfach hintereinander einf.
15.12.2015 20:49:44
Daniel
Hi
schleife brauchst du da nicht, du musst nur den Einfügebereich gegebenüber den Kopierbereich um den Faktor vergrössern.
dann reicht einmaliges Kopieren und Einfügen.
Set rngRowsCopy = Rows(conCopyRow).Resize(conCopyRowCount)
Set rngRowsInsertCopy = Rows(conInsertRow). _
Resize(rngRowsCopy.Rows.Count * byteBlockanzahl)
rngRowsCopy.Copy Destination:=rngRowsInsertCopy
Gruß Daniel

Anzeige
AW: VBA Zeilen mehrfach hintereinander einf.
15.12.2015 21:17:03
Hermann
Hallo Daniel,
vielen Dank für Deine Hilfe, jetzt funktioniert es.
Die Zeilen 39 bis 45 enthalten keine Daten. In dem Bereich sind drei Textfelder platziert.
Wähle ich in meiner Imputbox z.B. Anzahl 4, werden diese nur bei der 1.Kopie mit eingefügt.
Bei den restlichen Kopien fehlen sie.
Gibt es hierfür auch eine Lösung?
lG H

Anzeige
AW: VBA Zeilen mehrfach hintereinander einf.
15.12.2015 21:30:02
Daniel
Hi
bei Objekten musst du dann über die Schleife gehen und jeden Block einzeln kopieren und einfügen.
das automatische duplizieren wird nur bei Zellen gemacht, aber nicht bei Objekten.
bei einer 1:1-Kopie reicht es aus, wenn du als Ziel nur die linke obere Zelle angibst.
die Zeilennummer dieser Zelle musst dann in der Schleife verschieben:

Set rngRowsCopy = Rows(conCopyRow).Resize(conCopyRowCount)
For i = 1 To byteBlockanzahl
rngRowsCopy.Copy Destination:=Cells(conInsertRow + conCopyRowCount * (i - 1), 1)
Next
Gruß Daniel

Anzeige
AW: VBA Zeilen mehrfach hintereinander einf.
15.12.2015 22:28:38
Hermann
Hallo Daniel,
das war wieder eine perfekte Lösung für mein Problem.
Nochmals vielen Dank
lG H

AW: VBA Zeilen mehrfach hintereinander einf.
15.12.2015 21:21:30
Hermann
Hallo Daniel,
vielen Dank für Deine Hilfe, jetzt funktioniert es.
Die Zeilen 39 bis 45 enthalten keine Daten. In dem Bereich sind drei Textfelder platziert.
Wähle ich in meiner Imputbox z.B. Anzahl 4, werden diese nur bei der 1.Kopie mit eingefügt.
Bei den restlichen Kopien fehlen sie.
Gibt es hierfür auch eine Lösung?
lG H
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
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