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

Forumthread: Beim bestimmten Zelleninhalt neue Zeilen einfügen?

Beim bestimmten Zelleninhalt neue Zeilen einfügen?
07.10.2008 20:48:31
Selma
Hallo Leute,
wenn in Spalte C der Zelleninhalt dies BB-XX-G GG-25 ist, dann möchte ich davor 2 neuen Zeilen einfügen. Die letzte Zelle mit Inhalt kann in Spalte A genommen werden.
Wie mache ich das ?
Vielen Dank im Voraus !
Liebe Grüße,
Selma
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Beim bestimmten Zelleninhalt neue Zeilen einfügen?
07.10.2008 21:57:00
Gerd
Hi Selma !
Wie oft kann BB-XX-G GG-25 in Spalte C vorkommen?
Gruß Gerd
AW: Beim bestimmten Zelleninhalt neue Zeilen einfü
07.10.2008 22:10:00
Selma
Hallo Gerd,
so genau kann ich dir dies nicht sagen. Es ist immer unterschiedlich.
Ich habe mir das Makro wie folgt aus Recherche-Beispielen "zusammengebaut" bzw. etwas erweitert:


Sub Zeilen_einfügen()
'wenn in Spalte C (3) der Zellinhalt stimmt, dann wird dadrüber eine neue Zeile eingefügt
Dim loLetzte As Long
Dim loZeile As Long
    'letzte benutzte Zelle wird in Spalte A ermittelt
    loLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)
    For loZeile = loLetzte To 1 Step -1
        'wenn der gesamte Zellinhalt stimmt
        If Cells(loZeile, 3) = "BB-XX-G GG-25" Or Cells(loZeile, 3) = "RUCKKL" Then
        Rows(loZeile).Insert Shift:=xlDow
        'wenn in den Zelleninahlt der Text "330" vorkommt
        If Cells(loZeile, 3) Like "*330*" Then
        Rows(loZeile).Insert Shift:=xlDow
        'wenn die ersten 10 bzw. 3 Zeichen von links übereinstimmen bzw. vorkommen
        If Left(Cells(loZeile, 3), 10) = "DISCOCHECK" Or Left(Cells(loZeile, 3), 3) = "NAF" Then
        Rows(loZeile).Insert Shift:=xlDow
        End If
        End If
    Next loZeile
End Sub


Leider habe ich irgendwo die Fehler mit Next bzw. For.
Was habe ich falsch gemacht?
LG,
Selma
Anzeige
AW: Beim bestimmten Zelleninhalt neue Zeilen einfü
07.10.2008 22:34:00
Gerd
Hallo Selma !

Sub Zeilen_einfügen2()
'wenn in Spalte C (3) der Zellinhalt stimmt, dann wird dadrüber eine neue Zeile eingefügt
Dim loLetzte As Long
Dim loZeile As Long
'letzte benutzte Zelle wird in Spalte A ermittelt
loLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows. _
Count)
For loZeile = loLetzte To 1 Step -1
'wenn der gesamte Zellinhalt stimmt
If Cells(loZeile, 3) = "BB-XX-G GG-25" Then
Rows(loZeile).Insert Shift:=xlDown
Rows(loZeile).Insert Shift:=xlDown
ElseIf Cells(loZeile, 3) = "RUCKKL" Then
Rows(loZeile).Insert Shift:=xlDown
'wenn in den Zelleninahlt der Text "330" vorkommt
ElseIf Cells(loZeile, 3) Like "*330*" Then
Rows(loZeile).Insert Shift:=xlDown
'wenn die ersten 10 bzw. 3 Zeichen von links übereinstimmen bzw. vorkommen
ElseIf Left(Cells(loZeile, 3), 10) = "DISCOCHECK" Or Left(Cells(loZeile, 3), 3) = "NAF" Then
Rows(loZeile).Insert Shift:=xlDown
End If
Next loZeile
End Sub


So?
Gruß Gerd

Anzeige
AW: Beim bestimmten Zelleninhalt neue Zeilen einfü
07.10.2008 22:43:00
Selma
Vielen Dank Gerd !
LG,
Selma
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Neue Zeilen in Excel basierend auf Zelleninhalt einfügen


Schritt-für-Schritt-Anleitung

Um in Excel VBA neue Zeilen einzufügen, wenn ein bestimmter Zelleninhalt erreicht wird, kannst du das folgende Makro verwenden. In diesem Beispiel fügen wir zwei neue Zeilen über der Zelle ein, wenn der Inhalt in Spalte C "BB-XX-G GG-25" ist.

  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. Kopiere den folgenden Code in das Modul:

    Sub Zeilen_einfügen()
        Dim loLetzte As Long
        Dim loZeile As Long
        loLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)
    
        For loZeile = loLetzte To 1 Step -1
            If Cells(loZeile, 3) = "BB-XX-G GG-25" Then
                Rows(loZeile).Insert Shift:=xlDown
                Rows(loZeile).Insert Shift:=xlDown
            End If
        Next loZeile
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus, indem du ALT + F8 drückst, das Makro auswählst und auf Ausführen klickst.


Häufige Fehler und Lösungen

  • Fehler: "Excel kann keine neuen Zeilen einfügen."

    • Lösung: Überprüfe, ob die Tabelle gesperrt ist oder ob du versuchst, in einen geschützten Bereich zu schreiben.
  • Fehler: "Fehler in der Schleife."

    • Lösung: Stelle sicher, dass die Endbedingung der Schleife korrekt ist und dass du die Zeilen in umgekehrter Reihenfolge durchläufst, um keine Zeilen zu überspringen.

Alternative Methoden

Neben VBA kannst du auch die Funktion "Daten sortieren" oder "Filter" verwenden, um leere Zeilen manuell einzufügen. Eine andere Möglichkeit ist die Verwendung von Formeln, um Text zu kombinieren und dann die gewünschten Zeilen zu kopieren und einzufügen.


Praktische Beispiele

  1. Beispiel für das Einfügen einer bestimmten Anzahl an Zeilen: Wenn du beispielsweise drei Leerzeilen einfügen möchtest, kannst du den Code anpassen:

    If Cells(loZeile, 3) = "BB-XX-G GG-25" Then
        For i = 1 To 3
            Rows(loZeile).Insert Shift:=xlDown
        Next i
    End If
  2. Beispiel für das Einfügen basierend auf mehreren Bedingungen: Du kannst auch mehrere Bedingungen kombinieren, um verschiedene Zelleninhalte zu überprüfen.


Tipps für Profis

  • Nutze die Application.ScreenUpdating = False und Application.ScreenUpdating = True Befehle, um die Bildschirmaktualisierung während der Ausführung des Makros zu deaktivieren. Dies kann die Ausführungsgeschwindigkeit erhöhen.

  • Teste dein Makro in einer Kopie deiner Datei, um Datenverlust zu vermeiden.

  • Dokumentiere deinen Code mit Kommentaren, um die Wartbarkeit zu verbessern.


FAQ: Häufige Fragen

1. Wie kann ich das Makro automatisch ausführen, wenn ich Daten eingebe? Du kannst das Makro in das Worksheet_Change-Ereignis einfügen, um es automatisch auszuführen, wenn sich der Zellinhalt ändert.

2. Welche Excel-Version benötige ich für VBA? Jede Version von Excel, die VBA unterstützt (ab Excel 97), kann verwendet werden. Stelle sicher, dass du die Entwicklertools aktiviert hast.

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