Wenn keiner einen brauchbaren Vorschlag hat, dann folgende Infos.
Rows.Count, ist die letzte mögliche Zeile.
(Zeile 65536 in den älteren Excel- Versionen)
und
(Zeile 1048597 in den neuen Excel- Versionen)
___________________________________________________________________
' Zur absoluten letztmöglichen Zeile der Exceltabelle, dann so:
ActiveWindow.ScrollRow = ActiveSheet.Rows.Count
' Zur letzten belegten Zeile scrollen,
in welcher die Zelle in der Spalte B > 0 ist, dann so:
ActiveWindow.ScrollRow = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
' Wenn du die letzten 3 Zeilen sehen möchtest, dann:
ActiveWindow.ScrollRow = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row - 3
Den Code auf dein Makro anpassen
___________________________________________________________________
Deinen Code im Makro:
StartZeile = Ws.Cells(65536, 2).End(xlUp).Row + 1
würde ich in folgendes ändern,
dann musst du deine Makros, nicht auf neuere Excel- Versionen anpassen:
' Die leere Zeile, nach der letzten Datenzeile,
in welcher die Zelle in der Spalte B > 0 ist.
StartZeile = Ws.Cells(Rows.Count, 2).End(xlUp).Row + 1
___________________________________________________________________
z.B. die UserForm zentrieren:
' Eine horizontale Zentrierung
Me.Left = Application.Left + Application.Width / 2 - Me.Width / 2
' (Eine vertikale Zentrierung) + 30 weiter nach unten
Me.Top = (Application.Top + Application.Height / 2 - Me.Height / 2) + 30