online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon sphaze vom 30.07.2020, 09:34 Options

VBA: Löschen von Zeilen

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:

   
For i = 7 To letzteZeile Step 1
        Worksheets(2).Cells(i, 2).EntireRow.Clear
Next


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:


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 = "@"


Leider bringt mit der Compiler dann einen "Select Method of Range class failed"-Fehler. Ich weiß absolut nicht weiter...


Antwort schreiben

Antwort 1 von rainberg vom 30.07.2020, 10:02 Options

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 vom 30.07.2020, 10:26 Options

hi all

bitte in einem rutsch die werte loeschen,wozu eine schleife ?

ein einzeiler wuerde hier genuegen

gruss nighty

Antwort 3 von rainberg vom 30.07.2020, 11:30 Options

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 vom 30.07.2020, 15:33 Options

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 vom 30.07.2020, 16:19 Options

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 vom 30.07.2020, 16:28 Options

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 vom 30.07.2020, 19:55 Options

hi rainberg :-)

du solltest lehrmeistern und korrigieren und nicht jeden bloedsinn nachvollziehen :-))

gruss nighty

Antwort 8 von rainberg vom 30.07.2020, 20:36 Options

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

Ähnliche Themen

Excel VBA - Zeilen auf Daten überprüfen
Den  13.02.2007 - 57 Hits - 5 Antworten

beliebiege Anzahl zeilen einfügen vba
Catze  07.09.2007 - 72 Hits - 2 Antworten

VBA-Makro in Excel nur in gefilterten Zeilen ausführen
andreas_3  15.06.2008 - 84 Hits - 1 Antwort

VBA-Makro in Excel nur in gefilterten Zeilen ausführen
andreas_3  18.06.2008 - 59 Hits - 7 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026