Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
640to644
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
640to644
640to644
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zeilen löschen nach Kriterien

Zeilen löschen nach Kriterien
21.07.2005 09:41:50
Robert
Hallo,
Hoffentlich könnt ihr mich wieder mal weiter helfen. Ich habe ein Blatt voller Einträge und möchte bestimmte Einträge löschen gemäss folgende Angaben. Jedenfalls so habe ich es am Besten beschreiben können.
Wenn in Zeile "X", Zelle B Keinen oder einen Wert hat die vor das Datum 01/01/2005 liegt und in auch in Zelle A einen Datumswert von vor 01/01/2005 eingetragen ist dann kontrolliere ob in Zelle C der Eintrag "not sent" ist.
Wenn JA dann lösche die ganze Zeile.
Ich habe es mit folgendem Code nicht hingebracht aber vielleicht hilft es weiter.
Worksheets("test").Activate
DeleteValue1 = "&lt01/01/2005"
DeleteValue2 = "not sent"

With ActiveSheet

If .AutoFilterMode = False Then .Cells(1, 1).AutoFilter

.Columns("C").AutoFilter Field:=9, Criteria1:="not sent"
.Columns("A").AutoFilter Field:=1, Criteria1:=DeleteValue,
.Columns("B").AutoFilter Field:=2, Criteria1:=DeleteValue,
Operator:=xlAnd
With ActiveSheet.AutoFilter.Range

On Error Resume Next
Set rng = .Offset(1, 0).Resize(.Rows.Count - 1, 1) _
.SpecialCells(xlCellTypeVisible)
On Error GoTo 0
Selection.EntireRow.Delete

End With
.AutoFilterMode = False
End With
Grüsse
Robert

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

Betreff
Datum
Anwender
Anzeige
AW: Zeilen löschen nach Kriterien
21.07.2005 10:00:19
Ramses
Hallo
probier mal folgendes
Option Explicit

Sub Delete_Date_Rows()
Dim i As Integer
Dim sCol1 As Integer, sCol2 As Integer, sCol3 As Integer
Dim delDate1 As Date, delDate2 As Date, delStr As String
delDate1 = DateSerial(2005, 1, 1)
delDate2 = DateSerial(2005, 1, 1)
delStr = "NOT SEND"
'1. Datum
sCol1 = 2
'2. Datum
sCol2 = 1
'"Not Send"
sCol3 = 3
For i = Cells(65536, sCol2).End(xlUp).Row To 2 Step -1
    If Cells(i, sCol2) < delDate2 And Cells(i, sCol1) < delDate1 And UCase(Cells(i, sCol3)) = delStr Then
        Rows(i).Delete
    End If
Next i
End Sub

delDate1 und delDate2 haben den gleichen Wert.
Wird nur verwendet um die grösstmögliche Flexibilität zu haben.
Die Spaltenbezeichnungen bitte anpassen
Gruss Rainer
Anzeige
AW: Zeilen löschen nach Kriterien
21.07.2005 11:07:37
Robert
Hallo Rainer,
Du hast mich sehr geholfen. Klappt mit Anpassungen für meine Zwecke sehr gut.
Danke dir
Gruss Robert
AW: Zeilen löschen nach Kriterien
21.07.2005 10:04:47
Robert
Mustte der Code ein bischen ändern.
Worksheets("test").Activate
DeleteValue1 = "&lt01/01/2005"
DeleteValue2 = "not sent"
With ActiveSheet
If .AutoFilterMode = False Then .Cells(1, 1).AutoFilter
.Columns("C").AutoFilter Field:=9, Criteria1:=DeleteValue2
.Columns("A").AutoFilter Field:=1, Criteria1:=DeleteValue1
.Columns("B").AutoFilter Field:=2, Criteria1:=DeleteValue1, Operator:=xlOr, _
Criteria2:="=" Operator:=xlAnd
With ActiveSheet.AutoFilter.Range
On Error Resume Next
Set rng = .Offset(1, 0).Resize(.Rows.Count - 1, 1) _
.SpecialCells(xlCellTypeVisible)
On Error GoTo 0
Selection.EntireRow.Delete
End With
.AutoFilterMode = False
End With
Anzeige
Nicht mehr offen o.T.
21.07.2005 10:12:46
Ramses
...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige