Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
740to744
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
740to744
740to744
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Wieso nicht 1.Zeile bei Filter anzeigen
04.03.2006 11:46:42
Walter
Hallo Zusammen,
habe folgendes als Makro bzw. im Modul, mal von einem Forumsteilnehmer erhalten,
was auch die 1.Zeile bei einer selektion in einer Listbox anzeigt.

Function FindFirstRow_in_Filter(myDataBase As Range) As Long
FindFirstRow_in_Filter = myDataBase.SpecialCells(xlVisible).Row
End Function


Sub Typen_Anfang()
az = FindFirstRow_in_Filter(Range("E7:F7"))
Dim az
MsgBox az
End Sub

Mein Filter ist gesetzt in der Zelle E7+F7, es wird mir auf der Tabelle aber
immer 7 angezeigt, obwohl die 1. sichtbare Zelle Zeile18 ist.
Kann mir jemand helfen ?
Gruß Walter

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

Betreff
Datum
Anwender
Anzeige
Habe Lösung selbst gefunden, zu Info...
04.03.2006 12:43:21
Walter
Hallo zusammen,
bin glücklich, habe Lösung gefunden:

Sub Zeile_Anfang()
Dim az
az = Range("A7").End(xlDown).Row         'so wird im Filter die erste Zeile angezeigt
MsgBox az
End Sub

Wenn z.b. nach einer Filterung die Zeile 18 die 1.Zeile ist wird in der MSGBOX 18
angezeigt.
Gruß Walter
AW: Wieso nicht 1.Zeile bei Filter anzeigen
04.03.2006 12:59:08
daniel
Hallo,
die Funktion ermittelt die erste sichtbare Reihe aus dem Angebenen Bereich.
Wenn du jetzt als Parameter einen Bereich übergibst, der die Zeile entält, in der der Filter steht, wirst du als Rückgabe immer diese ZeilenNr bekommen, da sie ja immer sichtbar ist.
Du mußt also wenn dein Filter in Range("E7:F7") steht, als Parameter
Range("E8:F99") an die Funktion übergeben, wobei die 99 für die letzte Zeilen-Nr. deines Datenbereichs steht.
oder du ergänzt die Funktion wie folgt, dann genügt es, wenn du irgendeine Zelle der Tabelle als Parameter übergibst (Vorzugsweise die erste Zelle der Überschrift, Range("E7")),

Function FindFirstRow_in_Filter(myDataBase As Range) As Long
Set myDataBase = myDataBase.CurrentRegion
Set myDataBase = Range(myDataBase(2, 1), myDataBase(myDataBase.Rows.Count, myDataBase.Columns.Count))
FindFirstRow_in_Filter = myDataBase.SpecialCells(xlVisible).Row
End Function

Gruß, Daniel
Anzeige
Danke o.t.
04.03.2006 13:06:56
Walter
Hallo Daniel,
Du hast Recht, mit dem was Du schreibst, habe es so gelöst.
mfg walter

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige