Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1596to1600
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Unterste Zeile einer Tabelle auswählen und löschen

Unterste Zeile einer Tabelle auswählen und löschen
19.12.2017 21:44:04
Leo
Hallo alle beisammen,
ich hoffe es kann mir jemand helfen, denn ich werde langsam wahnsinnig.
Das einzige, was ich versuche zu schaffen, ist die letzt (unterste) Zeile einer "intelligenten" Tabelle zu löschen.
Dazu muss ich zunächst die letzte Zeile auswählen und es ist nirgendwo beschrieben, wie das geht. Ich habe sehr viel recherchiert und nichts Passendes gefunden.
Bisher habe ich mein Problem so gelöst:
Sub LöschUnten3()
'Es wird die Zelle unterhalb der Tabelle Stahl 1 ermittelt und ausgewählt.
Dim c As Range
Dim firstAddress
Dim str
Dim Bereich As Range
Dim start As Double
str = "Stahl 1"
With ActiveSheet.Cells
Set c = .Find(str, LookIn:=xlValues)
If c Like str Then Set Bereich = c
If Not c Is Nothing Then
firstAddress = c.Address
Do
Set c = .FindNext(c)
If c Like str Then Set Bereich = Union(c, Bereich)
Loop While Not c Is Nothing And c.Address  firstAddress
End If
End With
Bereich.Select
Debug.Print Timer - start
ActiveCell.Offset(1, 0).Select
'Nach der Ermittlung der Zelle unterhalb von Stahl 1 wird der Sprung zur letzten Zelle gemacht.
'Die letzte Zeile wird anschließend gelöscht.
Selection.Cells.Offset(Range("Tabelle12").Rows.Count - 1, 0).Delete
End Sub
Auf diese Weise klappt mein Vorhaben. Nun kommt jedoch ein Problem!
Ich muss den Bezug "Tabelle12" in der letzten Zeile wegbekommen und den Code somit quasi allgemein halten.
Mein Ansatz war bisher folgender:
Ich lösche die letzte Zeile und mache bei "ActiveCell.Offset(1, 0).Select" also weiter.
Zunächst habe ich geschrieben:
Selection.CurrentArea.Select
Und hier scheitert es bereits, denn es wird nicht die gesamte Tabelle12 ausgewählt, sondern nur der Bereich der Tabelle12, in dem etwas eingetragen ist - die letzten 3 LEEREN Zeilen werden also nicht erfasst.
Das selbe Problem mit End(xldown). Die Markierung stoppt an der letzten beschriebenen Zeile. Die restlichen leeren Zeilen werden nicht erfasst.
Bitte um Hilfe!

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: so?
19.12.2017 21:51:34
Fennek
Hallo,
wie wäre

cells(rows.count, "a").end(xlup).entirerow.delete
mfg
(ungetestet)
AW: so?
20.12.2017 10:09:58
Leo
Leider springt er dann komplett nach oben.
Also am Ende sah meine Zeil ganz unten so aus:
Debug.Print Timer - start
ActiveCell.Offset(1, 0).Select
Selection.End(xlDown).Select
Cells(Rows.Count, "a").End(xlUp).EntireRow.delete
AW: relevante Spalte
20.12.2017 12:13:15
Fennek
Hallo,
der Code nutzt Spalte 1 (="a") als Kriterium. Ersetze das durch die relevante Spalte, falls "E", dann

cells(rows.count, "E").end(xlup).entirerow.delete
oder
cells(rows.count, 5).end(xlup).entirerow.delete
mfg
(der gezeigte Code mit "ActiveCell" ist nicht gut)
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige