Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1612to1616
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
Inhaltsverzeichnis

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

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

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige