Hallo,
das ist mal wieder ein Referenzierungsproblem.
Da du das in einer With - End With Klammer stehen hast, wird auf das im With angegebene Blatt referenziert, indem vor den Range-Objekten (Range, Cells, Rows.Count, Columns.Count) ein Punkt gesetzt wird (zwingend).
Dann kannst du aber auf die Benennung des Blattes vor den Range-Objekten verzichten.
Zudem definierst du beim Löschen einen Zellbereich, willst doch aber wohl die ganze Zeile / Spalte löschen. Dann brauchst du vorher aber nicht einen Bereich definieren und vor allem brauchst du diesen Bereich auch nicht zu selektieren.
'Alle Spalten löschen, in denen Daten stehen, die nach dem gewünschten Zeitraum erfasst wurden
With Sheets("RohTN1")
'Letzte Spalte herausfinden
LastCol = .Cells(2, .Columns.Count).End(xlToLeft).Column
spalte = LastCol
Do While BisJ < Val(Right(.Cells(2, spalte).Value, 4))
spalte = spalte - 1
Loop
Do While BisM < Val(Mid(.Cells(2, spalte).Value, 4, 2))
spalte = spalte - 1
Loop
'###########Die folgende Zeile schmeißt eine Error#############'
.Columns(spalte + 1).Delete
End With
'Alle Zeilen löschen, in denen Daten stehen, die nach dem gewünschten Zeitraum erfasst wurden
With Sheets("Rohdaten")
'Letzte Zeile herausfinden
LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
zeile = LastRow
Do While BisJ < Val(Right(.Cells(zeile, 1).Value, 4))
zeile = zeile - 1
Loop
Do While BisM < Val(Mid(.Cells(zeile, 1).Value, 4, 2))
zeile = zeile - 1
Loop
.Rows(zeile + 1).Delete
End With
Gruß Werner
|