Anzeige
Archiv - Navigation
1888to1892
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

Letzte Zeile in gefiltertem Arbeitsblatt

Letzte Zeile in gefiltertem Arbeitsblatt
18.07.2022 12:07:44
Thomas
Hallo, ich wollte in einem per Autofilter gefilterten Tabellenblatt die letzte nicht leer Zeile ermitteln mittels

lngLastRow = tblTest.Cells(Rows.Count, 7).End(xlUp).Row
, allerdings bekomme ich dann als Rückgabe Wert den Wert des Tabellenblatt wenn der Autofilter nicht gesetzt wäre, also des Gesamtenblattes, ich möchte aber ja nur den gefilterten Wert.
Kann man das auch für die erste Zeile ermitteln, denn z.b. fängt der Bereich beim Filtern dann nicht bei 2 (1 sind ja die Überschriften) sondern 400 an?
Danke

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Letzte Zeile in gefiltertem Arbeitsblatt
18.07.2022 13:07:51
Thomas
Hi,
auch bei

lngLastRow = tblTest.UsedRange.Rows(tblTest.UsedRange.Rows.Count).Row
wird mir die letzte Zeile des ungefilterten Bereich ausgegeben und nicht die des gefilterten. Es ist eine "intelligente" Tabelle, kann es damit zusammenhängen?
nimm ne Formel
18.07.2022 12:43:39
WF
als Arrayformel:
{=MAX(TEILERGEBNIS(3;INDIREKT("A"&ZEILE(1:999)))*ZEILE(1:999))}
bzw. per INDEX-Verlängerung ohne { }:
=MAX(INDEX(TEILERGEBNIS(3;INDIREKT("A"&ZEILE(1:999)))*ZEILE(1:999);0))
WF
Anzeige
AW: nimm ne Formel
18.07.2022 13:08:42
Thomas
Wie müsste das in einer VBA Anweisung eingebaut werden?
AW: Letzte Zeile in gefiltertem Arbeitsblatt
18.07.2022 12:46:11
Daniel
Hi

Dim x As Range
Dim ErsteZeile As Long
Dim LetzteZeile As Long
Set x = ActiveSheet.AutoFilter.Range
Set x = Intersect(x, x.Offset(1, 0))
Set x = x.SpecialCells(xlCellTypeVisible)
ErsteZeile = x.Row
Set x = x.Areas(x.Areas.Count)
LetzteZeile = x.Row + x.Rows.Count - 1
Gruß Daniel
AW: Letzte Zeile in gefiltertem Arbeitsblatt
18.07.2022 13:12:56
Thomas
Hi,
also nach dem ersten Test, scheint es perfekt zu funktioieren, nur leider ist mir nicht so ganz klar was da passiert, kannst du das bitte kurz erklären im einzelnen.
Danke
AW: Letzte Zeile in gefiltertem Arbeitsblatt
18.07.2022 13:25:41
Daniel
das erste sollte selbsterklärend sein.
das intersect nimmt die Überschriftenzeile weg, die ja auch zum Autofilterbereich gehört und immer sichtbar ist.
Areas sind eine Untergruppe des Range-Objektes.
Eine Area ist immer ein rechteckiger lückenloser Zellbereich.
Eine Range kann aus mehreren Areas zusammengesetzt sein.
die Range("A1:C3,A5:C7,J4:K10") besteht aus den drei Areas A1:C3, A5:C7 und J4:K10
die letzte Zeile eines Bereichs ermittelt man, in dem man die erste Zeile nimmt (die bekommt man mit .row) und die Anzahl der Zeilen des Bereichs (rows.count) hinzuaddiert und 1 abzieht.
das funktioniert so aber nur mit Zellbereichen, die rechteckig und lückenlos sind, daher nimmt man die Areas und hierfür natürlich die letzte Area.
Gruß Daniel
Anzeige
AW: Letzte Zeile in gefiltertem Arbeitsblatt
18.07.2022 13:54:12
Thomas
Super, vielen Dank für die Erklärung.
MFG
Thomas
AW: Letzte Zeile in gefiltertem Arbeitsblatt
18.07.2022 13:41:00
GerdL
Moin

MsgBox Intersect(tblTest.AutoFilter.Range, tblTest.Cells.SpecialCells(12)).SpecialCells(11).Row
Gruß Gerd

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige