habe eine Tabelle Spalte a - n.
Es sollten alle Zeilen gelöscht werden, die
in der Spalte "K" >=0 und Ab Zeile 6, vielleicht kann mir jemand einen Tip geben.
mfg walter aus D MB
Sub loeSchen()
Dim i As Long
With ActiveSheet
For i = .Cells(Rows.Count, 11).End(xlUp).Row To 6 Step -1
If IsNumeric(.Cells(i, 11)) And Not IsEmpty(.Cells(i, 11)) Then
If .Cells(i, 11).Value = 0 Then
.Rows(i).Delete
End If
End If
Next
End With
End Sub
Gruss, Jogy
Sub loeSchen()
Dim i As Long
Dim k As Long
Dim exClude() As String
Dim deLete As Boolean
Dim checkValue As String
ReDim exClude(0 To 0)
Application.ScreenUpdating = False
With ActiveSheet
' Ausnahmen aus Spalte 15 einlesen.
' Zeile 1 von Spalte 15 darf nicht leer sein!
If .Cells(1, 15) "" Then
ReDim exClude(1 To .Cells(Rows.Count, 15).End(xlUp).Row)
For i = 1 To .Cells(Rows.Count, 15).End(xlUp).Row
exClude(i) = .Cells(i, 15).Value
Next
End If
For i = .Cells(Rows.Count, 11).End(xlUp).Row To 6 Step -1
' Wenn Zelle in Spalte
If IsNumeric(.Cells(i, 11)) And Not IsEmpty(.Cells(i, 11)) Then
If .Cells(i, 11).Value = 0 Then
' Geht zunächst mal davon aus, dass gelöscht werden soll
deLete = True
' Wenn Werte in Ausnahmeliste, dann ist die obere Grenze
' des Datenfeldes exClude > 0 --> Prüfung auf Ausnahmen
If UBound(exClude) > 0 Then
' Zu testenden Wert in Spalte D zwischenspeichern (schneller)
checkValue = .Cells(i, 4).Value
' Wert mit Ausnahmeliste vergleichen
For k = 1 To UBound(exClude)
' Bei Übereinstimmung nicht löschen und Überprüfung abbrechen
If checkValue = exClude(k) Then
deLete = False
Exit For
End If
Next
End If
' Wenn Löschmarker noch gesetzt, dann löschen
If deLete Then .Rows(i).deLete
End If
End If
Next
' Schreibt Ausnahmeliste zur Sicherheit nochmal in Spalte 15
' Ein Teil könnte gelöscht worden sein
For i = 1 To UBound(exClude)
.Cells(i, 15).Value = exClude(i)
Next
End With
Application.ScreenUpdating = True
End Sub
Gruss, Jogy
Sub loeSchen()
Dim i As Long
Dim k As Long
Dim exClude() As String
Dim deLete As Boolean
Dim checkValue As String
Dim leerZelle As Range
Dim exCludeRange As Range
Dim zeLLe As Range
ReDim exClude(-1 To -1)
Application.ScreenUpdating = False
With ActiveSheet
' Beliebige leere Zelle in Spalte 15 finden (wenn Sheet ganz voll, dann geht's nicht)
' Wird für ColumnDifferences gebraucht
Set leerZelle = Application.Columns(15).Find("")
' Ausnahmen aus Spalte 15 einlesen.
'On Error Resume Next
Set exCludeRange = .Columns(15).ColumnDifferences(leerZelle)
' Wenn kein Fehler, dann wurden Suchbegriffe gefunden
If Err.Number = 0 Then
' 2-dimensional wegen Zurückschreiben (s.u.)
ReDim exClude(1 To exCludeRange.Cells.Count, 1 To 1)
i = 0
For Each zeLLe In exCludeRange
i = i + 1
exClude(i, 1) = zeLLe.Value
Next
End If
For i = .Cells(Rows.Count, 11).End(xlUp).Row To 6 Step -1
' Wenn Zelle in Spalte
If IsNumeric(.Cells(i, 11)) And Not IsEmpty(.Cells(i, 11)) Then
If .Cells(i, 11).Value = 0 Then
' Geht zunächst mal davon aus, dass gelöscht werden soll
deLete = True
' Wenn Werte in Ausnahmeliste, dann ist die obere Grenze
' des Datenfeldes exClude > 0 --> Prüfung auf Ausnahmen
If UBound(exClude, 1) > -1 Then
' Zu testenden Wert in Spalte D zwischenspeichern (schneller)
checkValue = .Cells(i, 4).Value
' Wert mit Ausnahmeliste vergleichen
For k = 1 To UBound(exClude)
' Bei Übereinstimmung nicht löschen und Überprüfung abbrechen
If checkValue = exClude(k, 1) Then
deLete = False
Exit For
End If
Next
End If
' Wenn Löschmarker noch gesetzt, dann löschen
If deLete Then .Rows(i).deLete
End If
End If
Next
' Schreibt Ausnahmeliste zur Sicherheit nochmal in Spalte 15
' Ein Teil könnte gelöscht worden sein
If UBound(exClude, 1) > -1 Then
.Cells(1, 15).EntireColumn.ClearContents
.Range(.Cells(1, 15), .Cells(UBound(exClude, 1), 15)).Value = exClude()
End If
End With
Application.ScreenUpdating = True
End Sub
Gruss, Jogy
If checkValue = exClude(J, 1) Then
durch
If checkValue Like exClude(J, 1) Then
Dann kannst Du bei den Namen mit Müller* etc. arbeiten.
Gruss, Jogy
Sub Löschen()
Range("K7").Activate
Do Until ActiveCell = ""
If ActiveCell.Value >= 0 And ActiveCell.Value
Gruss
TOM
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