Zu definierter Zelle scrollen/springen

In ein­er Tabelle sind in Spalte A kalen­darische Dat­en des Jahres aufge­führt, also begin­nend am 1. Jan­u­ar bis zum 31. Dezem­ber des laufend­en Jahres. Der Wun­sch, die Forderung: Beim Klick auf eine Schalt­fläche oder beim Aktivieren des Tabel­len­blatts soll immer der Erste des aktuellen Monats in der zweito­ber­sten sicht­baren ober­sten Zeile ste­hen. Die Ober­ste Zeile ist stets die fix­ierte Zeile 1 mit den Über­schriften. Fol­gen­der Code führt bei Klick auf den entsprechen­den But­ton zum Ziel:

Sub SprungZuZelle()
   Dim Ziel As Range, Zeile As Long, Spalte As Long
   Set Ziel = Range("A1:A400").Find(DateSerial(Year(Date), Month(Date), 1))
   Zeile = Ziel.Row
   Spalte = 1
   With ActiveWindow
      .ScrollColumn = Spalte
      .ScrollRow = Zeile
   End With
End Sub

Soll das bei Aktivierung des Blattes geschehen, dann muss die erste Zeile natür­lich anders ausse­hen:

Sub WorkSheet_Activate()

Der Rest ist wie oben gezeigt. Der Code gehört in bei­den Fällen in das Mod­ul der entsprechen­den Mappe. Beim aktivieren wird die Mappe automa­tisch zum Monat­ser­sten scrollen.


Nach­trag: Natür­lich ist es auch möglich, zu ein­er definierten Zelle zu sprin­gen und den Bild­schirm „von alleine” dor­thin scrollen zu lassen. Beispiel­sweise …

Sub ScrollToXY()
   Dim Adresse As String
   'Gehe zu Adresse
   Application.Goto Reference:=Range("C138"), scroll:=True
     
   'Gehe zu Bereichsname
   Application.Goto Reference:=Range("ZielAdresse"), scroll:=True
   
   'Aus Zelle lesen, Adresse steht in A1,hier: 'C138
   Adresse = Cells(1, 1)
   Application.Goto Reference:=Range(Adresse), scroll:=True
End Sub

▲ nach oben …

Ref­er­ence: #5874

Dieser Beitrag wurde unter Code-Schnipsel, Tabelle und Zelle abgelegt und mit , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.