Hallo Adrian,
wenn ich dich recht verstanden habe, ermittelt du mit
"SpalteL = .Cells(Zeile, .Columns.count).End(xlToLeft).Column"
die letzte Spalte, in der in den relevanten 5 Zeilen etwas steht. Machst du das für alle 5 Zeilen und ermittelst das Maximum oder sind immer alle 5 Zeilen gefüllt, so dass das Maximum bereits nach einer Bestimmung feststeht?
Wenn du aber das Maximum bestimmt hast, können in den rechts von der letzten Spalte stehenden Spalten keine Werte mehr stehen. Wozu also der Aufwand?
Gruß
Holger
adrian schrieb am 27.11.2008 12:08:25:
Hallo,
ich bin noch Anfänger in VBA und würde mich freuen wenn mir hierbei jemand helfen kann!
Es werden jeweils 5 Werte in einer Spalte unterhalb einer bestimmten Zeile eingetragen.
Das gilt für:
For Spalte = Spalte1 To SpalteL
Die Anzahl der Spalten kann variieren und die letzte wird mittels "SpalteL = .Cells(Zeile, .Columns.count).End(xlToLeft).Column" ermittelt.
folgendes möchte ich nun machen, aber es funktioniert leider nicht:
Falls in den 5 Zeilen der SpalteL+1 Werte sind, alle 5 löschen und schauen ob in den Zeilen der SpalteL+2 ebenfalls werte stehen, ggf. löschen, usw.!
hier mein Code, aber er funktioniert leider nicht, weil ich nicht weiß, wie ich diese 5Zeilen in der SpalteR (=SpalteL+zähler) als Bereich/Range Speichern soll...oder ob es so überhaupt möglich ist.
With Datenblatt
Set SpalteR = .range(.Cells(Zeile + 1, SpalteL + 1), .Cells(Zeile + 1, SpalteL + 1))
Set Found = SpalteR.Find(what:=Cells.Value, LookIn:=xlValues, Lookat:=xlWhole)
While Not Found Is Nothing
SpalteR.ClearContents
Set SpalteR = SpalteR.Offset(0, 1)
Set Found = SpalteR.Find(what:=Cells.Value, LookIn:=xlValues, Lookat:=xlWhole)
Wend
End With
lg
adrian |