an Nepumuk, Knacknuss für Experten (Fortsetzung)
21.05.2004 11:20:04
Michel
Du hast mir gem. Datei t408645 v. 03.Apr. 04 mit deinem Code (siehe unten)bereits sehr geholfen, nochmals besten Dank dafür. Neu kommt hinzu, dass ich den Code umschreiben sollte (was mir nicht gelang). Dein Code ist bereits aktiv ab A1, muss aber erst ab D4 aktiv sein, da die Zeilen 1,2,3 bzw. Spalten A, B, C für andere Zahlen und Namen reserviert sind. Bei der letzten Spalte (z.B. AR)jedoch muss eine 6 stellige Zahl eingegeben werden und dann immer auf die nächste Zeile springen.
Vielen Dank im voraus
Michel
Dein Code:
Option Explicit
Private Declare
Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Declare
Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public
Sub Timerstart()
Dim Key As Byte, KeyLen As Byte
Do
For Key = 48 To 57
If GetAsyncKeyState(Key) + GetAsyncKeyState(Key + 48) = -32768 Then
Sleep 70
Select Case ActiveCell.Column
Case 11 'Spalte K - zwei Ziffern
If KeyLen = 1 Then
Application.SendKeys "{RIGHT}", True
KeyLen = 0
Exit For
Else
KeyLen = KeyLen + 1
End If
Case 29 'Spalte AC - drei Ziffern
If KeyLen = 2 Then
Application.SendKeys "{RIGHT}", True
KeyLen = 0
Exit For
Else
KeyLen = KeyLen + 1
End If
Case 30 'Spalte AD - eine Ziffer und Rückkehr Spalte 1 nächste Zeile
Application.SendKeys "{RIGHT}", True
Application.SendKeys "{DOWN}", True
Application.SendKeys "{LEFT 30}", True
KeyLen = 0
Exit For
Case Else 'alle anderne Spalten eine Ziffer
Application.SendKeys "{RIGHT}", True
KeyLen = 0
Exit For
End Select
End If
Next
Sleep 60
DoEvents
Loop
End Sub