Zellensteuerung mit Macken

Bild

Betrifft: Zellensteuerung mit Macken
von: Johannes
Geschrieben am: 23.03.2005 14:22:15
Hallo Spezialisten,
folgender Code soll das Anspringen der einzelnen Zellen mit Name input[Nr] in einer festgelegten Reihenfolge und nur auf dem Blatt "Eingabe" tun - klappt auch fast immer. Immer dann nicht, wenn Excel neu gestartet wurde und die Datei das erstemal geöffnet worden ist.
Wenn ich nach dem Öffnen nur per VBA zwischen einzelne Blättern hin und herwechsele und dann wieder auf Blatt Eingabe gehe klappt es wieder - was habe ich hier übersehen ?
Option Explicit
Option Private Module
Public iSel As Integer


Sub TastenForw()
'
    'Tastatursteuerung zur Eingabe in der Maske "Eingabe"
    'in festgelegter Reihenfolge,
    'zum vorwärts bewegen nur für Tabelle [Eingabe]
    If ActiveSheet.Name <> "Eingabe" Then
    Exit Sub
    End If
    On Error GoTo ErrHand
    iSel = iSel + 1
    Range("input" & iSel).Select
Exit Sub
ErrHand:
    'Springt beim Erreichen des letzten Eingabefeldes
    'zum ersten Feld zurück.
    Range("input1").Select
    iSel = 1
End Sub


Sub TastenBack()
'
    'zum rückwärts-bewegen nur für Tabelle [Eingabe]
    If ActiveSheet.Name <> "Eingabe" Then
    Exit Sub
    End If
    
    On Error GoTo ErrHand
    Dim iName As Integer
    iSel = iSel - 1
    Range("input" & iSel).Select
Exit Sub
ErrHand:
    Range("input1").Select
End Sub


Könnte mir jemand vieleicht einen Tipp zur Problemlösung behilflich sein?
Herzlichen Dank für Eure Hilfe.
Johannes
Bild

Betrifft: AW: Zellensteuerung mit Macken
von: Bert
Geschrieben am: 23.03.2005 14:33:33
Wie wird der Code aufgefufen? Vermutlich Selection_Change, oder?
Wo sind Range("Input1") und Input definiert?
Bert
Bild

Betrifft: Zellensteuerung mit Macken weiterer Code
von: Johannes
Geschrieben am: 23.03.2005 15:03:22
Hallo Bert,
die Zellen haben Namen "input1" bis "input50" ... anstelle von A1, B2 etc
Code aus dem Sheet Eingabe:
Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Beim Schließen der Arbeitsmappe die Tastenbelegung zurücksetzen
Application.OnKey "{ENTER}"
Application.OnKey "~"
Application.OnKey "+{ENTER}"
Application.OnKey "+~"
End Sub


Private Sub Worksheet_Activate()
Application.OnKey "{ENTER}", "TastenForw"
Application.OnKey "~", "TastenForw"
Application.OnKey "+{ENTER}", "TastenBack"
Application.OnKey "+~", "TastenBack"
'Setzen des Wertes für "iSel" auf 1
'Erstes Eingabefeld selektieren
iSel = 1
Sheets("Eingabe").Select
Range("input1").Select
End Sub


Private Sub Workbook_WindowActivate(ByVal Wn As Window)
Application.OnKey "{ENTER}", "TastenForw"
Application.OnKey "~", "TastenForw"
Application.OnKey "+{ENTER}", "TastenBack"
Application.OnKey "+~", "TastenBack"
End Sub


Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
Application.OnKey "{ENTER}"
Application.OnKey "~"
Application.OnKey "+{ENTER}"
Application.OnKey "+~"
End Sub


PS: ein workaround geht indem ich in einem workbook_open das hin und herspringen durchführen lassen bei "Application.ScreenUpdating = False" um die Optik nicht zu stören.
Gruß
Johannes
 Bild

Beiträge aus den Excel-Beispielen zum Thema ""Find Methode" trotz ausgeblendeter Spalte?"