Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1600to1604
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

Automatisches Löschen der Zeile

Automatisches Löschen der Zeile
10.01.2018 15:24:31
arek
Hallo zusammen,
ich habe folgendes Makro, das mir die ganze Zeile automatisch löscht, falls in Spalte B das Wort closed bzw. stopped steht...Jetzt möchte ich das Gleiche erreichen, allerdings nur dann wenn auch der entsprechende Eintrag in Spalte C mit einem "R" beginnt und nur dann!!...Wie muss ich hier mein Makro erweitern?
Könnt ihr mir hier helfen?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngRow As Long
If Not Intersect(Target, Columns(2)) Is Nothing Then
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
For lngRow = Cells(Rows.Count, 2).End(xlUp).Row To 1 Step -1
With Cells(lngRow, 2)
If .Value = "closed" Or .Value = "stopped" Then Rows(lngRow).Delete
End With
Next lngRow
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
Application.CalculateFullRebuild
End If
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Automatisches Löschen der Zeile
10.01.2018 15:40:27
Daniel
Hi
einfach noch ne IF-Bedingung dranhängen.
mit .Offset() kannst du von der aktuellen Zelle (die bei WITH defniert ist) auf benachbarte Zellen verweisen.
Auch beim Löschen der Zeile würde ich von dieser Zelle aus die Zeile ansprechen.
If .Value = "closed" Or .Value = "stopped" Then If Left(.Offset(0, 1).Value, 1) = "R" Then .EntireRow.Delete
Gruß Daniel
AW: Automatisches Löschen der Zeile
10.01.2018 15:48:36
arek
Hi Daniel,
vielen Dank! Wie sieht dann der Code konkret aus? Sorry bin noch Anfänger...
AW: Automatisches Löschen der Zeile
10.01.2018 16:08:31
Werner
Hallo Arek,
so:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngRow As Long
If Not Intersect(Target, Columns(2)) Is Nothing Then
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
For lngRow = Cells(Rows.Count, 2).End(xlUp).Row To 1 Step -1
With Cells(lngRow, 2)
If .Value = "closed" Or .Value = "stopped" Then
If Left(.Offset(, 1), 1) = "R" Then
Rows(lngRow).Delete
End If
End If
End With
Next lngRow
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
Application.CalculateFullRebuild
End If
End Sub
Das Makro reagiert aber nur bei Eingabe in Spalte B.
Gruß Werner
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige