Herbers Excel-Forum - das Archiv

vorletzte Reihe in gefilterter Tabelle

Bild

Betrifft: vorletzte Reihe in gefilterter Tabelle
von: RainerL
Geschrieben am: 05.10.2003 16:41:58
Hallo Forum,
komme selbst nicht weiter. Um in einer Tabelle die letzte Reihe zu finden, benutze ich:

r = ActiveCell.SpecialCells(xlLastCell).Row

msgbox Cells(r,1) zeigt mir den Inhalt der Zelle in Saplt A in der letzten Reihe an.
msgbox Cells(r-1,1) zeigt mir den Inhalt der vorletzten Zelle an.

Wie kann ich den Inhalt einer Zelle der vorletzten Reihe in einer gefilterten Tabelle auslesen?

Danke für Tips, Hiweise, Hilfe

Rainer

Bild

Betrifft: AW: vorletzte Reihe in gefilterter Tabelle
von: RainerW
Geschrieben am: 05.10.2003 17:36:55
Hallo Namensvetter :-)

so geht es bei mir Excel 9.0:

Sub test()
Dim r
r = ActiveCell.SpecialCells(xlLastCell).Row - 1
MsgBox Range("A" & r) ' Wenn Spalte A sonst anderen Buchstaben
End Sub


Gruß Rainer
Bild

Betrifft: AW: vorletzte Reihe in gefilterter Tabelle
von: Holger Levetzow
Geschrieben am: 05.10.2003 17:52:29
das wird so nicht klappen! In r ist dann die zeile davor, nicht die Zeile des gefilterten Wertes davor (die wird wohl gesucht). Außerdem gibt die message den Wert der Zelle zurück.
Versuche mal:
1. Beispiel: nur die Zeilenummer des nächsten Wertes
Sub test()
r = ActiveCell.SpecialCells(xlLastCell).Row
'Adresse und Wert merken
adresse = Cells(r, ActiveCell.Column).Address
wert = Range(adresse).Value
'Inhalt löschen
Range(adresse).ClearContents
'neue letzte Zelle finden
r = ActiveCell.End(xlUp).Row
'Zelle wieder beschreiben
Range(adresse) = wert
End Sub

2. Beispiel: die Zeilennummern aller Werte (letzter wird z.B. 1 sein, wenn Spaltenüberschrift in Zeile 1 steht)
Sub alle()
Range("A65536").Select
Cells(ActiveCell.End(xlUp).Row, ActiveCell.Column).Select
r = ActiveCell.Row '1. Zelle mit Wert
While r > 1
'Adresse und Wert merken
adresse = ActiveCell.Address
wert = ActiveCell.Value
'Inhalt löschen
ActiveCell.ClearContents
'neue letzte Zelle finden
Cells(ActiveCell.End(xlUp).Row, ActiveCell.Column).Select
'Zelle wieder beschreiben
Range(adresse) = wert
r = ActiveCell.Row 'nächste Zelle mit Wert
Wend
End Sub

mfg Holger
Bild

Betrifft: Vorletzte Reihe in gefilterter Tabelle - Formel
von: Boris
Geschrieben am: 05.10.2003 22:32:16
Hi Rainer,

ich biete dir noch ne Formelvariante - bezogen auf Spalte A:

{=KGRÖSSTE(WENN(TEILERGEBNIS(3;INDIREKT("A"&ZEILE(1:100)));ZEILE(1:100));2)}

Array-Formel - die {geschweiften Klammern} nicht mit eingeben, sondern Formeleingabe mit Strg-Shift-Enter abschließen. Das erzeugt sie.

Mit (auch Array-Formel)

{=INDEX(A:A;KGRÖSSTE(WENN(TEILERGEBNIS(3;INDIREKT("A"&ZEILE(1:100)));ZEILE(1:100));2))}

erhälst du den zugehörigen Eintrag.

Grüße Boris
Bild

Betrifft: Danke!
von: RainerL
Geschrieben am: 06.10.2003 04:09:33
Danke für die Hilfe

Die Lösung von Holger Levetow funktioniert gut.
Die Lösung von Boris habe ich nicht probiert.

Rainer
 Bild
Excel-Beispiele zum Thema " vorletzte Reihe in gefilterter Tabelle"
Summe gefilterter Zeilen Suche über mehrere Tabellen
Benennen von Tabellenblättern mit Monatsnamen Druckseitenlinien im Tabellenblatt
Tabellenblattnamen in ein Listenfeld einlesen Suchbegriff über mehrere Tabellenblätter suchen.
Tabellenblätter benennen Tabellenblatt auswählen
Zustand von Tabellenblatt-Checkboxes ermitteln Tabellenblattnamen der VBE-Projekte ändern