Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA-Lösung bestimmte Bereich löschen (clear)
#1
Hi Freunde,

bitte nochmals um VBA-Hilfe. In meiner Liste sind die Spalten A-F belegt. In A + F allerdings nicht alle Zellen. Und genau diese Zeilen, in denen in F nichts steht, können gelöscht werden (nur Inhalte). Mit einer Sortierroutine schiebe ich diese Zeilen nach unten.

Mit diesem Code suche ich die erste frei Zelle in F und gehe in die Spalte B (hier sind keine Leerzellen dazwischen) rüber.

Code:
Sub ErsteLeereZelleSpalteF()

Cells(Cells(Rows.Count, 6).End(xlUp).row + 1, 6).Select
ActiveCell.Offset(0, -3).Select

End Sub

Wie ich nun die letzte belege Zelle in Spalte B finde, weiß ich. Jedoch brauche ich Hilfe, wie ich den Bereich von hier bis zur ersten freien Zelle in F markieren kann, um diesen dann mit Clear inhaltlich zu löschen.

Lieben Dank im voraus.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#2
Hallo Günter,

der Befehl Clear ist gleichbedeutend mit dem Befehl "alles Löschen" in der Tabelle.
Inhalte werden mit dem Befehl ClearContents gelöscht.

Und hier ein Lösungsvorschlag für Dein Anliegen:

Code:
Sub leere_löschen()
   Dim lngZF As Long, lngZB
   lngZF = Cells(Rows.Count, 6).End(xlUp).Row + 1
   lngZB = Cells(Rows.Count, 2).End(xlUp).Row
   Range(Cells(lngZB, 2), Cells(lngZF, 6)).ClearContents
End Sub
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • WillWissen
Antworten Top
#3
Hi Atilla

danke schon mal für deine Hilfe. Bin noch bei der Arbeit. Ich schau es mir heute Abend an. Rückmeldung kommt dann.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#4
Hi Atilla,

dein Code funktioniert - allerdings macht er das zuuu gründlich. ;)

Tabelle3

ABCDE
1Überschrift 1Überschrift 2Überschrift 3Überschrift 4Überschrift 5
2Name1Text1noch'n Text1Zahl1
3das steht wasName2Text2noch'n Text2Zahl2
4Name3Text3noch'n Text3Zahl3
5Name4Text4noch'n Text4Zahl4
6das steht wasName5Text5noch'n Text5Zahl5
7Name6Text6noch'n Text6Zahl6
8Name7Text7noch'n Text7Zahl7
9das steht wasName8Text8noch'n Text8Zahl8
10Name9Text9noch'n Text9Zahl9
11das ist übrig
12das steht wasdas ist übrig
13das ist übrig
14das ist übrig
15das ist übrig
16das steht wasdas ist übrig
17das ist übrig
18das ist übrig
19das ist übrig
20das ist übrig

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Ich habe hier mal ein Muster eingestellt, wie mein Tabellenblatt nach dem Sortieren aussieht. Das, was ich blau unterlegt habe, soll gelöscht werden, alles andere muss stehen bleiben. Im Moment ist alles weg. Und wie ich ja bereits schrieb, muss Excel die jeweils erste Zeile suchen, ab der gelöscht werden darf, da die Liste sich umfangmäßig ständig verändert.

Ich habe versucht, die Codezeilen zu modifizieren, scheitere aber an meinem (Nicht)Wissen. Vielleicht kannst du nochmals drüberschauen. Oder einer der anderen VBA-Spezies. Danke.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#5
Hallo Günter,

könntest Du deinen Tabellenausschnitt auf die Spalte F erweitern und am besten wie es vorher aussieht und danach aussehen soll.
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#6
Hi Günter,

Zitat:Jedoch brauche ich Hilfe, wie ich den Bereich von hier bis zur ersten freien Zelle in F markieren

Ich sehe aber keine Daten in Spalte F.

Also änder im Code die Zahlen 6 in 5 und wenn Spalte A mit einbezogen werden soll,
dann in der letzten Codezeile die 2 in 1.
Gruß Atilla
Antworten Top
#7
Hallo Atilla, hallo Stefan,

der Fehler war wieder einmal eindeutig etwa 40 cm vorm Laptop-Screen. :05:

Auch ich sah nach euren Hinweisen keine Spalte F. Dass das Makro natürlich dann alles löschte, war eine zwangsläufige Folge.

Ganz lieben Dank für die Hilfe
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste