Hallo zusammen,
ich habe einen Datenabzug der regelmäßig ausgeführt wird. Aufgrund geringer Spezifizierungsmöglichkeiten muss noch händisch nachgearbeitet/gelöscht werden. Ich wollte mir dafür ein simples Makro bauen, bin in VBA allerdings nicht sonderlich bewandertund habe mir den aktuellen Kenntnisstand angelesen bzw. ergoogelt.
Meine Tabelle hat ca. 100 Zeilen und geht bis Spalte Q. Wenn in Zelle A2-A100 nicht der Buchstabe
"K"
steht, dann soll die Zeile gelöscht werden. Danach: Wenn in Zelle C2-C100
"Tdg"
oder
"Tagnoo"
steht, dann löschen!
Danach soll die Spalte
"Flotte"
aus dem hinteren Bereich in Spalte C kopiert werden. Die letzte Spalte
"nicht abgerechnet"
soll gelöscht werden.
Der erste Absatz (Definitionen:
Dim
...) ist mir darüber hinaus nicht klar und ich verstehe ihn im Grundsatz nicht. Bisher hats aber meistens so funktioniert ;)
Ich würde mich freuen wenn mich jemand konstruktiv auf meine (Denk-)Fehler hinweist. Dankeschön!
Exakt den selben Vorgang will ich auch noch für zwei andere Tabellenblätter abbilden, aber das sollte ja dann einfach anzupassen sein.
Code:
Sub
Aufraeumen()
Dim
i
As
Long
Dim
letzteZeile
As
Long
letzteZeile = Range(
"A500"
).
End
(xlUp).Row
For
i = letzteZeile
To
2
Step
-1
Sheets(
"Kennzahlen"
).
Select
If
Not
Cells(i, 1).Value
Like
"*K*"
Then
Rows(i).Delete Shift:=xlUp
End
If
If
Cells(i, 3).Value
Like
"*Tagnoo*"
Or
"*Tdg*"
Then
Rows(i).Delete Shift:=xlUp
End
If
Columns(
"Flotte"
).
Select
Application.CutCopyMode =
False
Selection.Copy
Columns(
"C:C"
).
Select
Selection.Insert Shift:=xlToRight
Columns(
"nicht abgerechnete Transporte"
).
Select
Selection.Delete Shift:=xlToLeft
Next
End
Sub