Eine hübsche Frage letzte Woche auf dem Excelstammtisch: In einer Arbeitsmappe befinden sich mehrere Tabellenblätter. Ich arbeite auf einem Blatt, wechsel zu einem anderen, arbeite dort und möchte nun zum ersten Blatt zurückspringen, auf dem ich zuvor gearbeitet habe. In Word gibt es dafür eine Taste: [Umschalt] + [F5]. Und Excel? Leider nichts. Also ein kleines Makro:
In einem Modul deklariere ich eine globale Stringvariable und verwende sie, um zu dem Blatt zu springen:
Public strBlattname As String
Sub GeheZuLetztemBlatt()
On Error Resume Next
ActiveWorkbook.Sheets(strBlattname).Activate
End Sub
Und nun in „DieseArbeitsmappe“. Im Ereignis
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
strBlattname = Sh.Name
End Sub
„merkt“ sind VBA nun in der Variablen strBlattnamen den Namen des Blattes, von welchem du aus weggesprungen bist. Beim Öffnen der Datei kann dieses Makro noch auf eine Taste gelegt werden, beispielsweise Umschalt + F5:
Private Sub Workbook_Open()
Application.OnKey „+{F5}“, „GeheZuLetztemBlatt“
End Sub
In dieser Datei funktioniert es. Man kann es auch als Add-In speichern, damit es in jeder Datei funktioniert. Dazu muss man ein Public WithEvents … deklarieren.