eine Tabelle mit mehrern Zeilen und mehreren Spalten. Folgende Aufgabe:
Wenn in Spalte 13 als Zellinhalt „no“ steht soll der ensprechende Bereich mit dieser Zelle gelöscht werden, ganze Zeilen gehen nicht
Bsp Spalten 10 bis 20 sind gefüllt
in Spalte 13 kann entweder high, medium, low, no stehen
jetzt soll, sobald in einer Zeile x und Spalte 13 „no“ steht jeweils der Bereich zeile X, Spalte 10 bis Zeile x Spalte 20 gelöscht werden.
wenn ich das mit einer schleife programmiere, dann habe ich das Problem, dass er sobald 2 Zeilen mit no kommen er nur die erste löscht, die nächste nach oben schiebt und dann zur nächsten Zeile übergeht.
for i = 8 to Zeilemax
If tab1.cells(i,13) = „no“ Then range(tab1.cells(i,10),tab1.cells(i,20).delete
next i
irgendwie komme ich nicht auf eine sinnvolle Lösung
Wenn in Spalte 13 als Zellinhalt „no“ steht soll der
ensprechende Bereich mit dieser Zelle gelöscht werden, ganze
Zeilen gehen nicht
Bsp Spalten 10 bis 20 sind gefüllt
in Spalte 13 kann entweder high, medium, low, no stehen
jetzt soll, sobald in einer Zeile x und Spalte 13 „no“ steht
jeweils der Bereich zeile X, Spalte 10 bis Zeile x Spalte 20
gelöscht werden.
wenn ich das mit einer schleife programmiere, dann habe ich
das Problem, dass er sobald 2 Zeilen mit no kommen er nur die
erste löscht, die nächste nach oben schiebt und dann zur
nächsten Zeile übergeht.
for i = 8 to Zeilemax
If tab1.cells(i,13) = „no“ Then
range(tab1.cells(i,10),tab1.cells(i,20).delete
next i
Hallo Slam,
man kann auch von oben kommend bestimmte Zeilen löschen, dann muß man halt im Falle einer Zeilenlöschung die laufende Zeilennummer korrigieren.
Viel einfacher ist es, wie Carsten schon richtig zeigte, von unten kommend die Zeilen abzuklappern, dann entfällt die Zeilennummerkorrektur.
Was meinst du mit „ganze Zeilen gehen nicht“?
Mit Delete löscht du sowieso ganze Zeilen, nur die Zellinhalte löschen geht damit nicht.
Meinst du vielleicht Clear bzw. Clearcontents?
So oder so ist
Range(Cells(5,13),Cells(5,20).Delete
Blodsinn zu aufwendig
Range(Cells(5,13).Delete
oder
Rows(5).Delete
bringt das Gleiche