Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1464to1468
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
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

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

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

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige