hat jemand eine Erklärung für folgende Beobachtung:
Ich möchte von einer UserForm aus die Cursor-Position (den Zellenfocus) im Excelblatt steuern, also nach dem Schema: Knobb_up eine Zeile nach oben springen und Knobb_down eine Zeile nach unten springen
Das geht ja ziemlich einfach etwa mit:
Private Sub btn_up_Click()
Zeile = ActiveCell.Row
Cells(Zeile - 1, 1).Select
End Sub
Private Sub btn_down_Click()
Zeile = ActiveCell.Row
Cells(Zeile + 1, 1).Select
End Sub
und funktioniert auch - nur wenn man die Klicks schneller setzt, belahmen sich die Routinen und setzten einfach aus - sprich man klickt erfolglos auf den Button. Jedes zweite mal wird der Code dann wieder ausgeführt. Es scheint so, als ob das System mit den Buttons nach jedem Klick erstmal eine Verschnaufpause einlegt, um dann wieder weiter zu machen. Somit braucht man ab einer etwas schnelleren Klick-Frequenz immer zwei Klicks für einen Zeilenwechsel, was ziemlich nervt.
Da ich einen Duo-Core XP-Rechner mit 3,5 GB RAM einsetze, sollten die Hardware Voraussetzungen für einen flotten Code-Lauf mit nur 4 Zeilen VBA-Code doch wohl sicher erfüllt sein.
Woran könnte diese Verzögerung denn liegen, oder gibt es eine elegantere Lösung, den Zellen-Fokus von einer Form aus zu steuern?
Und in dem Zusammenhang stellt sich dann auch meine zweite Frage:
Gibt es eine Möglichkeit innerhalb von UserFormen globale Tastaturkommandos zu definieren (die dann ja z.B. meinen Steuercode ausführen könnten)? Ich kenne nur die Möglichkeit über das KeyDown-Ereignis eines jeden Steuerelementes einen Code zu starten, nur muss man dieses ja dann immer für jedes Steuerelement auf der Form abfragen und das wird bei vielen Elementen sehr schnell unübersichtlich.
Es wäre schön, wenn mir dazu jemand behilflich sein könnte.
Bereits im Vorfeld bedanke ich mich für eure Tips.
Beste Grüße von Peter
[Di.24.Mrz.2009 14:56]