Supportnet / Forum / Tabellenkalkulation
VBA: Löschen von Zeilen
Frage
Hi Leute,
ich hab in einem Excel Sheet einen Button, der von Zeile 7 bis zur letzten beschriebenden Zeile alles löscht. Der Code ist ganz simpel:
[code]
For i = 7 To letzteZeile Step 1
Worksheets(2).Cells(i, 2).EntireRow.Clear
Next[/code]
Leider löscht mir das Clear auch die Formatierung, was nicht sein darf. Gibt es da irgendeine Alternative?
Ich hab keine gefunden und dann das proboiert:
[code]
Worksheets(2).Columns("A:J").Select
Selection.NumberFormat = "@"
Worksheets(2).Columns("K:K").Select
Selection.NumberFormat = "0.00"
Worksheets(2).Columns("L:AE").Select
Selection.NumberFormat = "@"
[/code]
Leider bringt mit der Compiler dann einen "Select Method of Range class failed"-Fehler. Ich weiß absolut nicht weiter...
Antwort 1 von rainberg
Hallo,
wenn Du nur die Inhalte löschen willst, dann....
Step 1 ist nicht erforderlich.
Gruß
Rainer
wenn Du nur die Inhalte löschen willst, dann....
For i = 7 To letzteZeile
Worksheets(2).Cells(i, 2).EntireRow.ClearContents
NextStep 1 ist nicht erforderlich.
Gruß
Rainer
Antwort 2 von nighty
hi all
bitte in einem rutsch die werte loeschen,wozu eine schleife ?
ein einzeiler wuerde hier genuegen
gruss nighty
bitte in einem rutsch die werte loeschen,wozu eine schleife ?
ein einzeiler wuerde hier genuegen
gruss nighty
Antwort 3 von rainberg
Hallo nighty,
da hast Du recht, das würde ich im richtigen Leben auch so machen, aber vorsichtshalber habe ich die Frage so beantwortet, wie sie gestellt war.
Gruß
Rainer
da hast Du recht, das würde ich im richtigen Leben auch so machen, aber vorsichtshalber habe ich die Frage so beantwortet, wie sie gestellt war.
Gruß
Rainer
Antwort 4 von sphaze
Danke!! Hat mir sehr weitergeholfen =)
Ich will erst ab Zeile 7 alle Werte löschen - und das bis zur letzten beschriebenen Zeile. Wie soll das ohne Schleife gehen?
Ich will erst ab Zeile 7 alle Werte löschen - und das bis zur letzten beschriebenen Zeile. Wie soll das ohne Schleife gehen?
Antwort 5 von sphaze
Danke!! Hat mir sehr weitergeholfen =)
Ich will erst ab Zeile 7 alle Werte löschen - und das bis zur letzten beschriebenen Zeile. Wie soll das ohne Schleife gehen?
Ich will erst ab Zeile 7 alle Werte löschen - und das bis zur letzten beschriebenen Zeile. Wie soll das ohne Schleife gehen?
Antwort 6 von rainberg
Hallo,
eine Möglichkeit wäre dies:
Die Zeile des letzen Eintrages in Spalte A gilt hierbei als letzte Zeile.
Gruß
Rainer
eine Möglichkeit wäre dies:
Option Explicit
Sub loeschen()
Rows("7:" & Cells(Rows.Count, 1).End(xlUp).Row).ClearContents
End SubDie Zeile des letzen Eintrages in Spalte A gilt hierbei als letzte Zeile.
Gruß
Rainer
Antwort 7 von nighty
hi rainberg :-)
du solltest lehrmeistern und korrigieren und nicht jeden bloedsinn nachvollziehen :-))
gruss nighty
du solltest lehrmeistern und korrigieren und nicht jeden bloedsinn nachvollziehen :-))
gruss nighty
Antwort 8 von rainberg
Hallo nighty,
mit "korrigieren" bin ich einverstanden.
"lehrmeistern" dagegen, halte ich in diesem Zusammenhang für eine Untugend. :-))
@sphaze
Dass nighty nicht noch mal schimpft, hier noch zwei weitere Möglichkeiten:
Dabei ist es egal in welcher Spalte der letzte Eintrag ist.
Gruß
Rainer
mit "korrigieren" bin ich einverstanden.
"lehrmeistern" dagegen, halte ich in diesem Zusammenhang für eine Untugend. :-))
@sphaze
Dass nighty nicht noch mal schimpft, hier noch zwei weitere Möglichkeiten:
Dabei ist es egal in welcher Spalte der letzte Eintrag ist.
Option Explicit
Sub loeschen()
Rows("7:" & Worksheets(1).UsedRange.Row + Worksheets(1).UsedRange.Rows.Count - 1).ClearContents
End Sub
Sub loeschen2()
Rows("7:" & Worksheets(1).Cells.Find("*", searchdirection:=xlPrevious).Row).ClearContents
End Sub
Gruß
Rainer

