Hallo,
vielen Dank für deine schnelle Antwort. So wie ich das nachvollziehen kann, hast du verstanden was ich anstellen will. Die Spalte "Flotte" muss ich mir allerdings aus einem anderen Tabellenblatt holen, da ich sie mir sonst mit dem vorhergehnden Löschvorgang zerschieße. Habe dafür ein Tabellenbaltt "Hilfe" angelegt.
Trotzdem haben sich nach wie vor Fehler eingeschlichen, auch wenn ich den Code einfach so rauskopiere. Ich kann leider nicht erkennen woran es liegt. "Außerhalb einer Prozedur ungültig"..?
Code:
Option Explicit 'Variablendeklaration erzwingen (hauptsächlich um Tippfehlern vorzubeugen)
'zu nutzende Variablen deklarieren
Sub Aufraeumen()
Dim i As Long
'innerhalb des nachfolgenden Blocks jeweils auf das angegebene Tabellenblatt beziehen - insofern gewollt
'(wenn gewollt, dann steht vor der Objektreferenz jeweils ein Punkt - siehe z.B. ".Cells", weiter unten)
With ThisWorkbook.Worksheets("Kennzahlen")
'durchläuft alle Zellen (ohne Titelzeile)
For i = .Cells(.Rows.Count, "A").End(xlUp).Row To 2 Step -1
'Wenn in Spalte A kein "K" steht
'oder wenn in in Spalte C zwei bestimmte Ausdrücke stehen, dann ...
If Not .Cells(i, "A").Value Like "*K*" _
Or .Cells(i, "C").Value Like "*Tagnoo*"
Or .Cells(i, "C").Value Like "*Tdg*" _
Then
'... Zeile löschen
.Rows(i).Delete Shift:=xlShiftUp
End If
'Spalte NaT löschen
.Columns("nicht abgerechnete Transporte").Delete Shift:=xlToLeft
End With
Next
'Spalte Flotte einfügen
Worksheets("Hilfe").Select
Columns("Flotte").Copy
Worksheets("Kennzahlen").Select
Columns("C:C").Insert Shift:=xlShiftToRight
'den autom. eingeblendeten (animierten) Kopier-Rahmen von Excel deaktivieren
Application.CutCopyMode = False
End Sub
|