Hallo VBA-Gemeinde,
mir stellt sich folgendes Problem:
in einem Excel-Sheet mit 60 Spalten gibt es einen dynamischen Button, der in die Spalte nach dem letzten Eintrag positioniert. Danach wechselt er die Anzeige und positioniert nach Betätigung in die 2. Spalte. So weit, so gut.
Im Projekt ist die Hervorhebung der aktuellen Zeile (4-2502) hinterlegt, die nur markiert, wenn die Funktion mit Radiobutton aktiviert ist (Feld BI1):
1 2 3 4 5 6 7 8 9 10 | Sub Worksheet_SelectionChange( ByVal Target As Range)
If Range( "BI1" ) = 1 Then
If Target.Row < 2503 And Target.Row > 3 Then
Rows.Interior.ColorIndex = xlColorIndexNone
Target.EntireRow.Interior.ColorIndex = 28
End If
Else
Rows.Interior.ColorIndex = xlColorIndexNone
End If
End Sub
|
Ist man jetzt mit dem Button auf die Spalte nach dem letzten Eintrag gesprungen, kann es sein, dass die Anzeige nach rechts scrollt (die ersten 2 Spalten bleiben wegen Fensterfixierung stehen). Beim Rücksprung auf die Anfangsposition (Spalte 2) bleibt dann aber das Fenster stehen, weil Spalte 2 ja immer angezeigt bleibt. Meine funktionierende Lösung war, dass vor der Positionierung in Spalte 2 erst in Spalte 3 positioniert wird, damit das Fenster zurück scrollt. Nachteil dabei ist, dass die SelectionChange-Funktion dadurch 2 Mal ausgeführt wird, was unnötig Zeit kostet.
Wie kann ich zurück scrollen und in Spalte 2 positionieren ohne 2 Mal die Zeile zu markieren?
|