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
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
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
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.
Öffne Excel und drücke ALT + F11
, um den VBA-Editor zu öffnen.
Klicke auf Einfügen
> Modul
, um ein neues Modul zu erstellen.
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
Schließe den VBA-Editor und gehe zurück zu Excel.
Führe das Makro aus, indem du ALT + F8
drückst, das Makro auswählst und auf Ausführen
klickst.
Fehler: "Excel kann keine neuen Zeilen einfügen."
Fehler: "Fehler in der Schleife."
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.
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
Beispiel für das Einfügen basierend auf mehreren Bedingungen: Du kannst auch mehrere Bedingungen kombinieren, um verschiedene Zelleninhalte zu überprüfen.
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.
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.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen