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

Forumthread: Leere Zeile einfügen wenn Bedingung erfüllt

Leere Zeile einfügen wenn Bedingung erfüllt
12.02.2019 08:57:08
Alexander
Ich habe eine Liste mit Nummern in Spalte B8:B150
An beliebiger Stelle in Spalte B kann jetzt die Zahl 100 auftauchen.
Nur einmal. Ich möchte vor der 100 eine leere Zeile einfügen. Wie kann ich das mit VBA lösen?
Zum Zeilen einfügen habe ich was gefunden.
Sub Einfügen()
Rows("7:7").Select
Selection.Insert Shift:=xlDown
End Sub
Aber den Bezug zu der 100 bekomme ich nicht hin. Vielleicht mit einer Schleife?

For Each rngCell In Range("B8:C150")
Select Case rngCell.Value
If Cells(rngCell.Row, "B") = "100" Then
Zeile einfügen
End If
Vielen Dank im voraus
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Leere Zeile einfügen wenn Bedingung erfüllt
12.02.2019 09:21:12
Daniel
Hi
wenn die Zahl 100 nur 1x auftauchen kann, dann
Range("B8:C150").find(what:="100", lookat:=xlwhole).EntireRow.Insert
wobei dann die 100 auch vorkommen sollte.
wenn nicht sicher ist, ob die 100 vorkommt, müsstest du noch etwas aufwand betreiben, um den Fehlerabbruch zu vermeiden:
z.B.
dim rng100 as range
set rng100 = range("B8:C150").find(what:="100", lookat:=xlwhole)
if not rng100 is nothing then rng100.entirerow.Insert
oder auch einfach
On Error Resume Next
Range("B8:C150").find(what:="100", lookat:=xlwhole).EntireRow.Insert
on Error Goto 0
oder
with Range("B8:C100")
if worksheetfunction.Countif(.cells, 100) > 0 then _
.find(what:="100", lookat:=xlwhole).EntireRow.Insert
end with
Gruß Daniel
Anzeige
AW: Leere Zeile einfügen wenn Bedingung erfüllt
12.02.2019 09:32:38
Alexander
Danke für die Antwort.
Die Zahl 100 kommt sicher einmal vor.
wie muß das dann komplett aussehen, in eine schleife muss das nicht mehr oder?
Public Sub hundert()
Range("B8:C150").find(what:="100", lookat:=xlwhole).EntireRow.Insert
End Sub

Anzeige
AW: Leere Zeile einfügen wenn Bedingung erfüllt
12.02.2019 09:41:42
Daniel
Hi
ne das reicht, eine Schleife musst du dann nicht mehr programmieren.
die läuft unsichtbar für dich innerhalb der .FIND-Funktion ab.
Gruß Daniel
AW: Leere Zeile einfügen wenn Bedingung erfüllt
12.02.2019 09:50:34
Alexander
Vielen Dank, funktioniert. :)
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Leere Zeile einfügen bei Erfüllung einer Bedingung in Excel


Schritt-für-Schritt-Anleitung

Um eine leere Zeile in Excel einzufügen, wenn eine bestimmte Bedingung erfüllt ist, kannst Du ein einfaches VBA-Makro verwenden. In diesem Beispiel fügen wir eine leere Zeile vor der Zahl 100 in einem bestimmten Bereich ein.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code in das Modul ein:

    Public Sub hundert()
       Range("B8:C150").Find(what:="100", lookat:=xlwhole).EntireRow.Insert
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Drücke ALT + F8, wähle hundert aus und klicke auf Ausführen.

Dies fügt eine leere Zeile vor der ersten gefundenen Zahl 100 in den Zellen B8 bis C150 ein.


Häufige Fehler und Lösungen

Problem: Das Makro funktioniert nicht, weil die Zahl 100 nicht gefunden wird.

Lösung: Stelle sicher, dass die Zahl 100 tatsächlich im Bereich B8:C150 vorhanden ist. Du kannst auch eine Fehlerbehandlung einfügen, um sicherzustellen, dass das Makro nicht abbricht:

Dim rng100 As Range
Set rng100 = Range("B8:C150").Find(what:="100", lookat:=xlwhole)
If Not rng100 Is Nothing Then rng100.EntireRow.Insert

Alternative Methoden

Wenn Du kein VBA verwenden möchtest, kannst Du auch eine Formel kombinieren mit einem Filter oder Sortieren, um leere Zeilen basierend auf Bedingungen zu erstellen.

  1. Füge eine Hilfsspalte neben deiner Datenreihe hinzu.

  2. Verwende die folgende Formel in der Hilfsspalte (angenommen, die Daten beginnen in B8):

    =WENN(B8=100;"";B8)
  3. Ziehe die Formel nach unten. Jetzt kannst Du die Hilfsspalte filtern, um nur die Zeilen anzuzeigen, die nicht leer sind.


Praktische Beispiele

Nehmen wir an, Du hast eine Liste in Spalte B von B8 bis B150. Wenn Du möchtest, dass eine leere Zeile vor jeder Zahl 100 hinzugefügt wird, kannst Du das folgende Makro verwenden:

Sub LeereZeileVorHundert()
    Dim rng As Range
    Set rng = Range("B8:B150")

    For Each cell In rng
        If cell.Value = 100 Then
            cell.EntireRow.Insert
        End If
    Next cell
End Sub

Dieses Skript wird eine leere Zeile vor jeder Zelle einfügen, die den Wert 100 enthält.


Tipps für Profis

  • Wenn Du viele leere Zeilen basierend auf verschiedenen Kriterien einfügen möchtest, kannst Du eine Schleife verwenden, die mehrere Bedingungen überprüft.
  • Nutze die On Error Resume Next-Anweisung, um Fehler zu ignorieren, wenn die Zahl nicht gefunden wird.
  • Experimentiere mit der Find-Methode, um die Suche zu optimieren und verschiedene Suchkriterien zu verwenden.

FAQ: Häufige Fragen

1. Kann ich auch mehrere Bedingungen verwenden? Ja, Du kannst die If-Anweisung im VBA-Code anpassen, um mehrere Bedingungen zu überprüfen.

2. Was ist, wenn ich keine VBA verwenden möchte? Du kannst Formeln verwenden, um die Daten zu filtern und manuell leere Zeilen einzufügen, allerdings ist dies weniger effizient als ein Makro.

3. Funktioniert das auch in Excel Online? VBA-Makros sind in Excel Online nicht verfügbar. Du musst eine Desktop-Version von Excel verwenden, um dieses Skript auszuführen.

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