Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

erste sichtbare zelle bei AUTOFILTER

Forumthread: erste sichtbare zelle bei AUTOFILTER

erste sichtbare zelle bei AUTOFILTER
03.05.2006 16:55:49
th.heinrich
bestes Forum,
warum funzzt der code nicht? Home wird angesprungen, dann aber kein OffSet.

Sub erste()
ActiveSheet.Protect userinterfaceonly:=True
ActiveSheet.EnableAutoFilter = True
'Range("AA1").End(xlUp).Select
Application.SendKeys "^{HOME}"
ActiveCell.Offset(rowoffset:=0, columnoffset:=3).Activate
'Selection.End(xlUp).Select
End Sub

vielen dank
thomas
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: erste sichtbare zelle bei AUTOFILTER
03.05.2006 20:25:13
Ramses
Hallo
Das sind die Mysterien von EXCEL.
Excel aktiviert schon richtig,.... aber nicht dort wo du erwartest :-)
Probier mal und staune

Sub erste()
ActiveSheet.EnableAutoFilter = True
'Range("AA1").End(xlUp).Select
Application.SendKeys "^{HOME}", True
MsgBox ActiveCell.Address
ActiveCell.Offset(rowoffset:=0, columnoffset:=3).Activate
'Selection.End(xlUp).Select
End Sub

Verwende statt
Application.SendKeys "^{HOME}", True
lieber
Range("A1").Select
Dann haut das ganze hin
Gruss Rainer
Anzeige
AW: erste sichtbare zelle bei AUTOFILTER
03.05.2006 21:19:04
th.heinrich
hallo Rainer,
ne leider nicht, dann lande ich in den Filterkriterien. soll aber die erste, sichtbare, gefilterte zeile sein. loesungsansatz war unterer thread.
https://www.herber.de/forum/archiv/448to452/t448788.htm#448788
kann man nicht .sendkeys als Objekt fuers offset verwenden?
gruss thomas
Anzeige
AW: erste sichtbare zelle bei AUTOFILTER
03.05.2006 21:25:17
Ramses
Hallo
"...dann lande ich in den Filterkriterien..."
Application.SendKeys "^{HOME}", True
Landet immer auf der ersten möglichen anwählbaren sichtbaren Zelle links oben, auch wenn du auf Zelle A65536 bist.
Wenn die Zeilen 1:10 ausgeblendet sind, dann also in A11
Wo willst du denn hin ?
Gruss Rainer
Anzeige
AW: erste sichtbare zelle bei AUTOFILTER thx mt.
03.05.2006 22:50:37
th.heinrich
hi Rainer,
danke fuer Dein crossposting ;-)) with compliments to Mischa.
das mit Range("A1").Select funzzt nicht, weil in A:A die Filterkriterien stehen und beim selecten nicht in die erste sichtbare zeile gescrollt wird.
gruss thomas
Anzeige
AW: erste sichtbare zelle bei AUTOFILTER
04.05.2006 09:17:50
WernerB.
Hallo Thomas,
wenn es Dir primär um die Ermittlung der ersten gefilterten Zeile und nicht um "SendKeys" geht, dann könnte das so funktionieren:

Sub ErsteAutoFilterZeile()
Dim iRow As Long, iRowT As Long
iRow = 2
Do Until IsEmpty(Cells(iRow, 1))
If Rows(iRow).Hidden = False Then
iRowT = iRow
Exit Do
End If
iRow = iRow + 1
Loop
MsgBox iRowT
End Sub

Gruß
WernerB.
Anzeige
AW: danke funzzt auch :-) ot.
04.05.2006 10:25:18
th.heinrich
AW: danke funzzt auch :-) ot.
05.05.2006 13:42:26
Ramses
Hallo
Dafür muss man aber keine komplizierten Schleifen bauen :-)
Activesheet.range("A2:G100").specialcells(xlvisible).cells(1,1).select
A2:G100 ist dein Datenbankbereich
Gruss Rainer
nun sinds schon 3 varianten :-) mit frage
05.05.2006 22:34:13
th.heinrich
thx Rainer,
meintest Du das mit workaround im online Forum?
habe mein projekt jetzt nicht zuhause, aber statt Avtivesheet.Range(":") muesste doch auch AvtiveSheet.CurrentRegion funzzen, oder?
nochmals vielen dank.
gruss thomas
Anzeige
AW: nun sinds schon 3 varianten :-) mit frage
06.05.2006 08:14:11
Ramses
Hallo
CurrentRegion bezieht immer auch die Header deiner Datenbank mit ein.
Um die erste Gefilterte !! Zelle zu finden, muss der Datenbereich angegeben werden, auf welchen sich die sichtbaren Zellen beziehen sollen
Gruss rainer
vielen dank :-) geschlossen ot.
06.05.2006 11:28:42
th.heinrich
;
Anzeige

Infobox / Tutorial

Erste sichtbare Zelle bei Autofilter in Excel


Schritt-für-Schritt-Anleitung

Um die erste sichtbare Zelle bei einem Autofilter in Excel zu ermitteln, kannst Du den folgenden VBA-Code verwenden:

Sub ErsteAutoFilterZeile()
    Dim iRow As Long, iRowT As Long
    iRow = 2
    Do Until IsEmpty(Cells(iRow, 1))
        If Rows(iRow).Hidden = False Then
            iRowT = iRow
            Exit Do
        End If
        iRow = iRow + 1
    Loop
    MsgBox iRowT
End Sub
  1. Öffne den VBA-Editor: Drücke ALT + F11.
  2. Füge ein neues Modul hinzu: Rechtsklick auf „VBAProject (DeinWorkbook)“ > Einfügen > Modul.
  3. Kopiere den obigen Code in das Modulfenster.
  4. Schließe den VBA-Editor und gehe zurück zu Excel.
  5. Führe das Makro aus: Drücke ALT + F8, wähle ErsteAutoFilterZeile und klicke auf „Ausführen“.

Häufige Fehler und Lösungen

  • Fehler: „Anwendungsfehler“ beim Ausführen des Codes

    • Lösung: Stelle sicher, dass Du den richtigen Datenbereich im Code angibst und dass die Autofilter aktiv sind.
  • Problem mit SendKeys

    • Lösung: Verwende Range("A1").Select anstelle von SendKeys, um direkt zur ersten Zelle zu navigieren. Dies kann jedoch zu Problemen führen, wenn die Filterkriterien in der ersten Zeile stehen.

Alternative Methoden

Eine weitere Möglichkeit, die erste sichtbare Zelle zu ermitteln, ist die Verwendung von SpecialCells. Der folgende Code selektiert die erste sichtbare Zelle in einem definierten Bereich:

ActiveSheet.Range("A2:G100").SpecialCells(xlVisible).Cells(1, 1).Select

Ändere den Bereich A2:G100 entsprechend Deinem Datenbereich. Diese Methode ist oft einfacher und effizienter.


Praktische Beispiele

  1. Beispiel für die Verwendung von CurrentRegion: Wenn Deine Daten in einer zusammenhängenden Tabelle sind, kannst Du CurrentRegion verwenden, um den gesamten Bereich zu erfassen:

    ActiveSheet.Range("A1").CurrentRegion.SpecialCells(xlVisible).Cells(1, 1).Select
  2. Verwendung mit dem Autofilter: Setze zuerst einen Autofilter auf Deine Daten und führe dann den Code aus, um die erste sichtbare Zelle zu finden.


Tipps für Profis

  • Nutze EnableAutoFilter: Stelle sicher, dass der Autofilter aktiviert ist, bevor Du Deinen Code ausführst.
  • Vermeide SendKeys: Diese Funktion kann unvorhersehbare Ergebnisse liefern. Verwende stattdessen direkte Zellreferenzen.
  • Testen in verschiedenen Excel-Versionen: Achte darauf, dass der Code in Deiner Excel-Version (z.B. Excel 2016, Excel 365) funktioniert.

FAQ: Häufige Fragen

1. Wie finde ich die erste sichtbare Zelle ohne VBA? Du kannst die Filterfunktion in Excel verwenden und manuell zur ersten sichtbaren Zelle scrollen.

2. Funktioniert dieser Code in allen Excel-Versionen? Ja, der Code sollte in den meisten modernen Excel-Versionen funktionieren, aber teste ihn in Deiner spezifischen Version, um sicherzugehen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige