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

Forumthread: Leerzeilen einfügen und Inhalt von Oben übernehmen

Leerzeilen einfügen und Inhalt von Oben übernehmen
03.03.2018 11:20:51
Oben

Hallo,
vielleicht kann mir zu dem Beispiel von UweD noch mal jemand helfen:
In meiner Tabelle sind in Spalte C sowas wie Bezeichnungen drin. Die Tabelle ist nach dieser Spalte sortiert. Jedes mal, wenn der Name wechselt, also ein neue Gruppe beginnt, soll der Code 4 Leerzeilen einfügen, das macht er sauber:

Sub Leer()
Dim Tb, LR As Double, i As Double, Sp As Integer, Anz As Integer, Letzte As Double
Set Tb = Sheets("Tabelle1")
Sp = 4 'Spalte D
Anz = 4 'Leerzeilen
LR = Tb.Cells(Tb.Rows.Count, Sp).End(xlUp).Row 'letzte Zeile der Spalte
Letzte = LR
For i = LR To 2 Step -1
If Tb.Cells(i, Sp)  Tb.Cells(i - 1, Sp) Then
Tb.Rows(Letzte + 1).Resize(Anz).Insert xlDown
Letzte = i - 1
End If
Next
End Sub
Ich will damit erreichen, das ich unterhalb einer Gruppe noch weitere DS für diese Gruppe erstellen kann. Dazu muss nun auch der Gruppenname (Bezeichnung) aus der oberen Gruppe in die neu erstellen Leerzeilen übernommen werden.
Sonst muss ich die paar Tausend Zeilen alle manuell bearbeiten.
Kann mir da jemand helfen, wie ich die neuen leeren Zeilen in Spalte C mit den Bezeichnungen von der jeweils oberen Gruppe noch mit füllen kann ?
Danke
Jockel
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Leerzeilen einfügen und Inhalt von Oben übernehmen
03.03.2018 17:14:17
Oben
Hallo Jockel,
beim testen Deines Codes hat er bei mir nicht einwandfrei geklappt. Erst als ich ihn etwas anpasste, funktionierte es. Ich habe die Deklaration und Zuweisung der Variablen Letzte entfernt und die Zeile
Tb.Rows(Letzte + 1).Resize(Anz).Insert xlDown
angepasst in
Tb.Rows(i).Resize(Anz).Insert xlDown.
Zum Einfügen des Wertes aus der Spalte C der vorherigen Zeile in die Zellen der Spalte C der neu eingefügten Zeilen muss dann nur die Code-Zeile
Cells(i, 3).Resize(Anz, 1).Value = Cells(i - 1, 3).Value
eingefügt werden.
In Deinem Post sprichst Du die ganze Zeit von Werten in der Spalte C. In dem geposteten Code werden allerdings die zusätzlichen Zeilen bei Änderungen in der Spalte D eingefügt. Ist das so gewollt (Zeilen einfügen bei Änderung in der Spalte D, Werte aber in der Spalte C eintragen)? Ggfs. müssen die Spalten-Nr. dann noch angepasst werden.
Der neue Code im Ganzen:
Sub Leer()
Dim Tb, LR As Double, i As Double, Sp As Integer, Anz As Integer
Set Tb = Sheets("Tabelle1")
Sp = 4 'Spalte D
Anz = 4 'Leerzeilen
LR = Tb.Cells(Tb.Rows.Count, Sp).End(xlUp).Row 'letzte Zeile der Spalte
For i = LR To 2 Step -1
If Tb.Cells(i, Sp)  Tb.Cells(i - 1, Sp) Then
Tb.Rows(i).Resize(Anz).Insert xlDown
Cells(i, 3).Resize(Anz, 1).Value = Cells(i - 1, 3).Value
End If
Next
End Sub
Gruß
Robert
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