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

Zeile 7 kopieren und direkt darunter einfügen

Forumthread: Zeile 7 kopieren und direkt darunter einfügen

Zeile 7 kopieren und direkt darunter einfügen
20.01.2025 12:11:18
Lisa
Moin alle zusammen.

Ich möchte gern in meinem Excelblatt 1 eine beschriebene Zeile von B7 bis G7 mit nur den Inhalten aus den Zellen B7 und aber allen Formaten kopieren und direkt darunter in B8, wieder einfügen.
Alle darunter beschriebenen Zellen und Zeilen solle um eine Zeile nach unten verschoben werden.
Das Ganze soll über ein Steuerelement erfolgen welches in der Zeile 7 steht und auch jeweils nach unten rutschen soll

Aufgezeichnet habe ich diesen Code, naja der leider nicht hilft.

With Sheets(1)
Range("B7:G7").Copy
Range("B7").EntireRow.Insert

Range("B8").Paste

End With

End Sub

Kann mir jemand helfen?

Liebe Grüße Lisa
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile 7 kopieren und direkt darunter einfügen
20.01.2025 13:46:11
JoWE
Hallo Lisa,
vielleicht so:
Sub copyRow()

With Sheets(1)
.Rows(8).Insert
.Range("B8:G8").ClearFormats
.Range("B7:G7").Copy
.Cells(8, 2).PasteSpecial Paste:=xlPasteValues
.Range("B8:G8").PasteSpecial Paste:=xlPasteFormats
End With
End Sub

Gruß
Jochen
Anzeige
AW: Zeile 7 kopieren und direkt darunter einfügen
20.01.2025 14:12:13
Piet
Hallo

das geht m.E. kürzer, aber Lisa soll bitte auf ihre (Anfänger typischen) With Fehler achten!!

Bei Verwendung von With muss vor jedem Range ein "." stehen, wenn dieser .Range zu Sheets(1) gehört!
Andernfalls ist es der Range des gerade Aktiven Sheet. Ist Sheets(1) Aktiviert merkt man den Unterscheid nicht!
Bei Range().Select darf vor Range KEIN Punkt stehen!! - Das sind die Feinheiten von With.

Mit Copy und Insert in die nächste Zeile werden alle Formate automatisch übernommen.
Nur wenn es Rahmen gibt, die man NICHT kopieren will, empfehle ich den Code von JoWe.

mfg Piet

With Sheets(1)

.Range("B7:G7").Copy
.Range("B8:G8").Insert shift:=xlDown
End With
Anzeige
AW: Zeile 7 kopieren und direkt darunter einfügen
20.01.2025 16:47:13
GerdL
Hallo Lisa!

Sub Unit()


With Sheets(1)
.Rows(8).Insert -4121, 0
.Cells(8, 2) = .Cells(7, 2).Value
End With

End Sub


Das zu verschiebende Steuerelement solltest du ggf. in einer Beispieldatei hochladen,
da wir dessen Typ, Eigenschaften u. ggf. Verankerung in der Tabelle nicht kennen.

Gruß Gerd

Anzeige
AW: Zeile 7 kopieren und direkt darunter einfügen
24.01.2025 11:13:46
Lisa
Hallo noch einmal in die Runde.

Noch immer arbeite ich an diesem Projekt und komme nicht weiter. Ich hoffe nun das mir jemand helfen kann,

Ein Bereich aus meiner Tabelle soll per klick auf einen Button kopiert werden.

Der grüne Bereich aus der Tabelle soll mit Inhalt in die darunterliegende Zeile eingefügt werden und der gelbe Bereich ohne Inhalt.

Nun habe ich gedacht das ich erst nur den Rahmen kopiere und einfüge und anschließend der grüne Bereich.

Für den Rahmen verwende ich diesen Code:

Sub Schaltfläche1_Klicken()
With Sheets(1)

'Bereich kopieren und einfügen

.Range("B7:G12").Copy
.Cells(Rows.Count, 2).End(xlUp).Offset(2).PasteSpecial Paste:=xlPasteFormats


End With
End Sub

Nun fehlt mir der Ansatz wie weiter.

Ich habe da ja schon einen Versuch gestartet, aber irgendwie komme ich nicht richtig weiter. Hier hat Gerd schon sehr toll geholfen.

im Anhang habe ich noch einmal versucht zu zeigen was ich benötige.

https://www.herber.de/bbs/user/175095.xlsm
Liebe Grüße Lisa
Anzeige
AW: Zeile 7 kopieren und direkt darunter einfügen
25.01.2025 17:55:06
Piet
Nachtrag

mit Resize(10, 5) habe ich den Löschbereich auf 10 Zeilen eingestellt, statt auf 5 Zeilen. Die reichen auch!
Wenn ihr das Formular aber mal verlängert reichen 5 Zeilen ggf. nicht aus. So spielt es keine Rolle, wenn ich 10 Zeile lösche.
Die Tabelle enthält nach unten ja keine Daten, oder ist das falsch gedacht?? Dann kannst es ja bitte selbst ändern.
.Cells(lz1, 3).Resize(10, 5).ClearContents 'oder Resize(5, 5) 'für 5 Zeilen löschen!!

mfg Piet
Anzeige
AW: Zeile 7 kopieren und direkt darunter einfügen
25.01.2025 17:48:30
Piet
Hallo Lisa

bei meiner 1. Antwort hatte die Beispieldatei nicht vorgelegen, sonst hätte ich dir direkt diesen Code geschickt!
Damit müsste es jetzt klappen. Bitte gib noch Antwort bevor dein Thread aus dem Server rausfällt, ins Archiv geht!

mfg Piet

Sub Schaltfläche1_Klicken()

With Sheets(1)
'vor dem kopieren LastZell ermitteln
lz1 = .Cells(Rows.Count, 2).End(xlUp).Offset(2).Row + 1
'Bereich kopieren und einfügen
.Range("B7:G12").Copy 'Mit xlPasteAll kopieren!!
.Cells(Rows.Count, 2).End(xlUp).Offset(2).PasteSpecial Paste:=xlPasteAll
'LastZelle Bereich ab Spalte C löschen
.Cells(lz1, 3).Resize(10, 5).ClearContents 'oder Resize(5,5)
End With
End Sub
Anzeige
AW: Zeile 7 kopieren und direkt darunter einfügen
22.01.2025 13:22:14
lisa
Hallo Gerd, der Code funktioniert wie gewünscht.

Ich habe den Code um meine erweiterten Wünsche bearbeitet.

Jetzt habe ich versucht, um die Zellen der eingefügten Zeilen, einen Rahmen zu legen.

Das klappt, allerdings nur oben und unten, links und rechts nicht.

Da habe ich irgendetwas nicht beachtet, vielleicht kannst du da noch einmal drüber gucken?

Private Sub CommandButton1_Click()
With Sheets(1)
.Rows("13:17").Insert -4121, 0


.Rows("13:17").Borders(xlEdgeLeft).Weight = xlMedium
.Rows("13:17").Borders(xlEdgeTop).Weight = xlMedium
.Rows("13:17").Borders(xlEdgeBottom).Weight = xlMedium
.Rows("13:17").Borders(xlEdgeRight).Weight = xlMedium


.Cells(12, 2) = .Cells(6, 2).Value
.Cells(12, 5) = .Cells(6, 5).Value
.Cells(12, 6) = .Cells(6, 6).Value
.Cells(12, 7) = .Cells(6, 7).Value
.Cells(13, 2) = .Cells(7, 2).Value
.Cells(14, 2) = .Cells(8, 2).Value
.Cells(15, 2) = .Cells(9, 2).Value
.Cells(16, 2) = .Cells(10, 2).Value
.Cells(17, 2) = .Cells(11, 2).Value
End With
End Sub


Für deine Hilfe vielen Dank.

Liebe Grüße Lisa
Anzeige
AW: Rahmenlinie am Zeilenanfang links/-ende rechts anzeigen
22.01.2025 13:55:21
GerdL
Hallo Lisa,

du machst nichts falsch. Die Anzeige der Rahmenlinie am Zeilenanfang u. -ende erfolgt lediglich in der Ansicht optisch nicht.
Dies erkennt man, wenn man z.B. die Spalte A markiert u. eine neue Spalte einfügt.

Da ich keine Lösung zur Änderung kenne, stelle ich die Frage auf noch offen.

Gruß Gerd
Anzeige
AW: Rahmenlinie am Zeilenanfang links/-ende rechts anzeigen
22.01.2025 14:40:20
Lisa
Hallo Gerd, schön das ich im Ansatz wenigstens nichts falsch mache :)


Ich habe dann den Code mal auf nur einen Bereich in einer Range gefaßt, damit funktioniert es so wie ich es brauche.
Vielen herzlichen dank für deine Unterstützung.

With Sheets(1)
.Range("B2:E5").Insert xlShiftDown
'.Range("B2:E5").ClearFormats
.Range("B2:E5").Borders(xlEdgeLeft).Weight = xlMedium
.Range("B2:E5").Borders(xlEdgeTop).Weight = xlMedium
.Range("B2:E5").Borders(xlEdgeBottom).Weight = xlMedium
.Range("B2:E5").Borders(xlEdgeRight).Weight = xlMedium
.Cells(6, 2) = .Cells(1, 2).Value
.Cells(7, 2) = .Cells(1, 3).Value
.Cells(8, 2) = .Cells(1, 4).Value
End With

Liebe Grüße Lisa
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige