Ist es möglich ein Fenster per VBA so zu fixieren, dass beim öffnen immer nur die letzten 4 Spalten auf der rechten Seite angezeigt werden egal wieviele Spalten sich in der Tabelle befinden?
Vielen Dank für eure Hilfe
Gruss Marcel
Private Sub Workbook_Open()
With ActiveSheet.UsedRange
ActiveWindow.ScrollColumn = .Column + .Columns.Count - 4
End With
End Sub
Gruß, DanielOption Explicit
Private Sub Workbook_Open()
Dim rLetzte As Range
Application.ScreenUpdating = False
With ThisWorkbook.Sheets(Tabelle1.Name)
Set rLetzte = FindLetzte(Sheets(.Name))
If rLetzte.Column > 4 Then
.Columns.EntireColumn.Hidden = True
.Range(.Columns(rLetzte.Column - 3), .Columns(rLetzte.Column)).EntireColumn.Hidden = False
Application.Goto .Cells(1, rLetzte.Column - 3), True
End If
End With
Application.ScreenUpdating = True
End Sub
kommt als Code in Modul1
Option Explicit
Function FindLetzte(mySH As Worksheet) As Range
Dim LRow As Long, LCol As Long
Dim A As Long
With mySH.UsedRange
On Error Resume Next
'Finde Zeile
LRow = .Find("*", , xlValues, xlWhole, xlByRows, xlPrevious, False, False).Row
LRow = Application.Max(LRow, .Find("*", , xlFormulas, xlWhole, xlByRows, xlPrevious).Row)
If LRow = 0 Then LRow = 1
'Finde Spalte
For A = .Columns(.Columns.Count).Column To .Columns(1).Column Step -1
LCol = mySH.Columns(A).Find("*", , xlValues, xlWhole, xlByRows, xlPrevious).Row
LCol = Application.Max(LCol, mySH.Columns(A).Find("*", , xlFormulas, xlWhole, xlByRows, xlPrevious).Row)
If LCol > 1 Then: LCol = A: Exit For
Next A
If LCol = 0 Then LCol = 1
End With
Set FindLetzte = mySH.Cells(LRow, LCol)
End Function
Gruß Tino