Supportnet Computer
Planet of Tech

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....


For i = 7 To letzteZeile
    Worksheets(2).Cells(i, 2).EntireRow.ClearContents
Next


Step 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

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

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?

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?

Antwort 6 von rainberg

Hallo,

eine Möglichkeit wäre dies:

Option Explicit

Sub loeschen()
    Rows("7:" & Cells(Rows.Count, 1).End(xlUp).Row).ClearContents
End Sub


Die 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

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.

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