Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1516to1520
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

Sprung innerhalb Spalte

Sprung innerhalb Spalte
05.10.2016 16:03:16
Markus
Hallo,
leider springt der Cursor mit dem Shortcut "Strg + Pos1" immer in die erste Spalte und erste Zeile im sichtbaren Bereich beim aktiven Autofilter.
Da meine Tabelle aber sehr viele Spalten hat, möchte ich in der gleichen Spalte bleiben und ganz nach oben springen (gefiltert).
Jemand eine Idee wie ich das mit VBA lösen kann ?
Grüße
Markus

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sprung innerhalb Spalte
05.10.2016 16:30:02
PeTeR
Hallo Markus,
nach oben springen: activecell.end(xlup).select
Viel Erfolg
PeTeR
AW: Sprung innerhalb Spalte
05.10.2016 16:49:41
Luschi
Hallo Markus,
da Du nicht zur Filterüberschrift, sondern zur nächsten darunter liegenden Zelle mit dem Cursor _ springen willst, ist ein bischen mehr Aufwand zu betreiben:

Function ersteZeile_Filter() As Variant
Dim myRange As Variant, n As Long
If ActiveSheet.FilterMode Then
myRange = Split(ActiveSheet.AutoFilter.Range. _
SpecialCells(xlCellTypeVisible).Address, ",", -1, vbTextCompare)
If Range(myRange(0)).Rows.Count > 1 Then
'falls die Filterüberschrift und die 1. Filterzelle unmittelbare
'Zellnnachbarn
n = Range(myRange(0)).Resize(1, 1).Row + 1
Else
n = Range(myRange(1)).Cells(1, 1).Row
End If
ersteZeile_Filter = n
Else
'fall kein Filter gesetzt ist
ersteZeile_Filter = 0
End If
If IsArray(myRange) Then
Erase myRange
End If
End Function
Sub MachEs()
Dim n&
n = ersteZeile_Filter()
If n > 0 Then
Application.Goto Cells(n, ActiveCell.Column), False
End If
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Sprung innerhalb Spalte
06.10.2016 10:39:37
Markus
Hallo Peter,
jetzt springt er zwar nach oben, aber in den autofilter hinein, und die Tabelle wird dann nicht gescrollt.
Ich wollte in die erste Zeile der gefilterten Zeile.
Dann würde auch die Tabelle nach oben gescrollt.
Vielleicht sollte ich noch erwähnen, dass die Zeile mit dem Autofilter fixiert ist.
Beispiel:
Der Autofilter ist in der Zeile 2 aktiviert, da bleibt der ja auch.
Nachdem ich nun die Tabelle mit dem Filter setze (z.B. Spalte B nach Test(9)und leere), ist die erste gefunden Zeile darunter die Zeile 5
Dann soll er in der gleichen Spalte also in die Zeile 5 springen, somit wird alles nach oben gescrollt.
https://www.herber.de/bbs/user/108616.xlsx
Anzeige
AW: Sprung innerhalb Spalte
06.10.2016 11:40:35
Markus
Jetzt habe ich doch glatt dem falschen geantwortet, ich meinte natürlich dem Lischi seine Lösung.
Die Lösung von dir Peter springt nur bis zur nächsten leere Zelle nach oben, das reicht leider nicht.
Luschi ist da schon auf einem ganz guten Weg.
AW: Sprung innerhalb Spalte
06.10.2016 17:41:34
Luschi
Hallo Markus,
habe3 meinen geposteten Code mal in Deine Datei gesetzt und es klappt.
Benutze cen CommandbarButton auf dem Tabellenblatt.
https://www.herber.de/bbs/user/108627.xlsm
Gruß von Luschi
aus klein-Paris
AW: Sprung innerhalb Spalte
07.10.2016 07:46:30
Markus
Danke Luschi, ich das dank deiner Hilfe so gelöst
  • Sub ErsteZeileAutofilter()
    If ActiveSheet.AutoFilterMode Or ActiveSheet.FilterMode Then
    GoTo weiter
    Else: Cells(1, ActiveCell.Column).Select
    GoTo ende
    End If
    weiter:
    Application.Goto Cells(GetFilteredRangeTopRow, ActiveCell.Column), False
    ende:
    ActiveWindow.SmallScroll Up:=500000
    End Sub
    

    Function GetFilteredRangeTopRow() As Long
    Dim HeaderRow As Long, LastFilterRow As Long
    On Error GoTo NoFilterOnSheet
    With ActiveSheet
    HeaderRow = .AutoFilter.Range(1).Row
    LastFilterRow = .Range(Split(.AutoFilter.Range.Address, ":")(1)).Row
    GetFilteredRangeTopRow = .Range(.Rows(HeaderRow + 1), .Rows(Rows.Count)).SpecialCells( _
    xlCellTypeVisible)(1).Row
    If GetFilteredRangeTopRow = LastFilterRow + 1 Then GetFilteredRangeTopRow = 0
    End With
    NoFilterOnSheet:
    End Function
    

  • Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige