Zeilen in Excel einfügen wenn eine Bedingung erfüllt ist
Hallo
ich möchte ein Problem in Excel lösen
habe ein zwei Tägiges Seminar Excel VBA Einsteiger besucht und nun sind noch viel mehr Fragen offen als ich dachte!
Problem
Excel2007
ich möchte in bestehen den Excel Tabellen Zeilen einfügen
wenn folgende Bedingung erfüllt ist ( Übersichtlichkeit)
in den Tabellen sind immer wieder Zellen einer Spalte mit gleichen Werten gefüllt (z.B. 15645645456)
das kann 1- x mal vorkommen und die Leer Zeile soll immer nach der Letzten Fundstelle eingefügt werden
bin das Wochenende leider daran verzweifelt!
Mit freundlichen Grüßen
Ulf
die Spallte Z ist die die ich bearbeiten möchte
immer wenn in dieser Spalte ein Wert mehr als einmal auftritt soll unter der letzten Fundstelle eine leer Zeile eingefügt werden
dann müsste das einlesen weitergehen um bei der nächsten Fundstelle wieder eine Zeile einfügen werden
bis das Ende dieser Spalte erreicht wird es gibt ca 1900 Zeilen die eingelesen werden müssen!
ich denke das meine Lösungsversuche immer an der Problematik enden das ich es nicht hinbekommen
wie erreiche ich es das ich den Zellenwert merke nach weiteren suche ( das gute sie kommen immer hintereinander)
die Leerzeile einzufügen und dann ab der Fundstelle weitermache!
Ich werde heute Abend dies mit meinen Versuchen noch ergänzen!
Ulf
ich möchte ein Problem in Excel lösen
habe ein zwei Tägiges Seminar Excel VBA Einsteiger besucht und nun sind noch viel mehr Fragen offen als ich dachte!
Problem
Excel2007
ich möchte in bestehen den Excel Tabellen Zeilen einfügen
wenn folgende Bedingung erfüllt ist ( Übersichtlichkeit)
in den Tabellen sind immer wieder Zellen einer Spalte mit gleichen Werten gefüllt (z.B. 15645645456)
das kann 1- x mal vorkommen und die Leer Zeile soll immer nach der Letzten Fundstelle eingefügt werden
bin das Wochenende leider daran verzweifelt!
Mit freundlichen Grüßen
Ulf
die Spallte Z ist die die ich bearbeiten möchte
immer wenn in dieser Spalte ein Wert mehr als einmal auftritt soll unter der letzten Fundstelle eine leer Zeile eingefügt werden
dann müsste das einlesen weitergehen um bei der nächsten Fundstelle wieder eine Zeile einfügen werden
bis das Ende dieser Spalte erreicht wird es gibt ca 1900 Zeilen die eingelesen werden müssen!
ich denke das meine Lösungsversuche immer an der Problematik enden das ich es nicht hinbekommen
wie erreiche ich es das ich den Zellenwert merke nach weiteren suche ( das gute sie kommen immer hintereinander)
die Leerzeile einzufügen und dann ab der Fundstelle weitermache!
Ich werde heute Abend dies mit meinen Versuchen noch ergänzen!
Ulf
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 252473
Url: https://administrator.de/forum/zeilen-in-excel-einfuegen-wenn-eine-bedingung-erfuellt-ist-252473.html
Ausgedruckt am: 18.04.2025 um 09:04 Uhr
8 Kommentare
Neuester Kommentar

Hallo,
bißchen wenig Info findest du nicht ? Nutze die Fomatierungsoptionen des Forums um uns wenigstens ein Beispiel deiner Tabelle zu zeigen, damit wir besser verstehen was du exakt meinst. Hier kommt es wie immer auf Kleinigkeiten an!
Gruß
jodel32
bißchen wenig Info findest du nicht ? Nutze die Fomatierungsoptionen des Forums um uns wenigstens ein Beispiel deiner Tabelle zu zeigen, damit wir besser verstehen was du exakt meinst. Hier kommt es wie immer auf Kleinigkeiten an!
Gruß
jodel32
Also ich würde dein Probem mit VBA versuchen zu lösen. Anfangen könnte man folgendermaßen:
- VBA-Aufzeichnung starten
- Stelle mit Dopplung manuell suchen
- von Hand die beiden Zeilen einfügen
- Aufzeichnung beenden
Damit hast du dann schon ein kleines Unterprogramm, welches genau deine Funktionalität erfüllt. Im zweiten Schritt, aber da müsste ich auch erst mal nachschauen, baust du dir eine Routine, die die doppelten Zeilen sucht und wenn sie die gefunden hat, das obige Unterprogramm aufruft.
Ist sicher nicht die eleganteste Lösung, müsste aber funktionieren...
- VBA-Aufzeichnung starten
- Stelle mit Dopplung manuell suchen
- von Hand die beiden Zeilen einfügen
- Aufzeichnung beenden
Damit hast du dann schon ein kleines Unterprogramm, welches genau deine Funktionalität erfüllt. Im zweiten Schritt, aber da müsste ich auch erst mal nachschauen, baust du dir eine Routine, die die doppelten Zeilen sucht und wenn sie die gefunden hat, das obige Unterprogramm aufruft.
Ist sicher nicht die eleganteste Lösung, müsste aber funktionieren...
Hallo Ulf, Willkommen auf Administrator.de!
das könntest du folgendermaßen machen: find_duplicates_insert_rows_252473.xlsm
Grüße Uwe
das könntest du folgendermaßen machen: find_duplicates_insert_rows_252473.xlsm
Sub InsertRowsAfterDuplicates()
Dim ws As Worksheet, rngCurrent As Range, cnt as integer, lastValue as String
Set ws = Sheets(1)
Set rngCurrent = ws.Range("Z1")
lastValue = ""
cnt = 0
While rngCurrent.Value <> ""
If lastValue = rngCurrent.Value Then
cnt = cnt + 1
lastValue = rngCurrent.Value
Set rngCurrent = rngCurrent.Offset(1, 0)
Else
If cnt >= 2 Then
rngCurrent.EntireRow.Insert
rngCurrent.EntireRow.Insert
lastValue = rngCurrent.Value
Set rngCurrent = rngCurrent.Offset(1, 0)
Else
lastValue = rngCurrent.Value
End If
cnt = 0
End If
Wend
End Sub

Hallo zusammen!
Andere Möglichkeit:
Grüße Dieter
[edit] Korrektur, sodass es mit/ohne Überschriftzeile funktioniert [/edit]
Andere Möglichkeit:
Sub Test()
Dim oFound As Range, i As Long
With Sheets("Tabelle1")
For i = .UsedRange.Rows.Count To 1 Step -1
If .Cells(i, "Z").Text <> "" Then
Set oFound = .Columns("Z:Z").Find(.Cells(i, "Z").Text, .Cells(i, "Z"), xlValues, xlWhole)
If Not oFound Is Nothing Then
If oFound.Row < i Then
.Rows(i + 1).Insert Shift:=xlDown: i = oFound.Row
End If
End If
End If
Next
End With
End Sub
[edit] Korrektur, sodass es mit/ohne Überschriftzeile funktioniert [/edit]

Hallo geosulf!
Sorry, hatte nur mit Überschriftzeile getestet
Hab's oben korrigiert und sollte jetzt auch ohne Überschriftzeile funktionieren...
Grüße Dieter
Sorry, hatte nur mit Überschriftzeile getestet
Hab's oben korrigiert und sollte jetzt auch ohne Überschriftzeile funktionieren...
Grüße Dieter

Hallo geosulf!
Mal abgesehen davon, dass ich den Sinn nicht ganz verstehe (Zwischenleerräume Tabellenende?), ist mein Code dazu eh nicht geeignet, da die Zeilen ja von unten nach oben abgearbeitet werden
Grüße Dieter
Mal abgesehen davon, dass ich den Sinn nicht ganz verstehe (Zwischenleerräume Tabellenende?), ist mein Code dazu eh nicht geeignet, da die Zeilen ja von unten nach oben abgearbeitet werden
Grüße Dieter