Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
384to388
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
384to388
384to388
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Automatisch zur nächsten Zelle springen (ohne Tab)

Automatisch zur nächsten Zelle springen (ohne Tab)
22.02.2004 19:16:23
Thomas
Hallo,
ich möchte für "Masseneingaben" Folgendes erreichen:
Im Tabellenblatt sollen Zahlen eingegeben werden und zwar in A2 eine einstellige Zahl, in B2 eine vierstellige Zahl, in C2 eine sechsstellige Zahl.
Beim Erreichen der Feldlänge (1, 4 bzw. 6) soll die Gültigkeit geprüft werden (nur Eingabe von Zahlen zulässig) und wenn Prüfung erfolgreich war, soll "automatisch" zur nächsten Zelle gesprungen werden (ohne Tab- bzw. Entertaste). Nach C2 soll dann in die nächste Zeile (A3) gesprungen werden.
Läßt sich das bewerkstelligen? Vielen Dank fürs Grübeln.
Thomas

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Automatisch zur nächsten Zelle springen (ohne Tab)
22.02.2004 19:39:07
Nepumuk
Hallo Thomas,
nur mit Hilfe eines Userforms. Sollen nur ganze Zahlen zulässig sein, oder sind auch Kommastellen erlaubt?
Gruß
Nepumuk
AW: Automatisch zur nächsten Zelle springen (ohne Tab)
22.02.2004 19:49:16
Thomas
Hallo Nepumuk,
es sind nur ganze Zahlen erlaubt, keine Kommastellen.
Danke und Gruß
Thomas
AW: danke
22.02.2004 20:40:05
Thomas
Hallo Nepumuk,
super :-)))
vielen vielen Dank
Thomas
AW: Automatisch zur nächsten Zelle springen (ohne
22.02.2004 21:17:21
Reinhard
Hi Thomas,
probiers mal mit nachfolgendem Code.
Leider klappte die Parameterübergabe an "check(x as Integer)" nicht, wie zB so:
Application.OnKey "0", "check(""0"")" o.ä.
Gruß
Reinhard

Sub Ein()
Application.OnKey "0", "check0"
Application.OnKey "1", "check1"
Application.OnKey "2", "check2"
Application.OnKey "3", "check3"
Application.OnKey "4", "check4"
Application.OnKey "5", "check5"
Application.OnKey "6", "check6"
Application.OnKey "7", "check7"
Application.OnKey "8", "check8"
Application.OnKey "9", "check9"
End Sub


Sub Aus()
Application.OnKey "0"
Application.OnKey "1"
Application.OnKey "2"
Application.OnKey "3"
Application.OnKey "4"
Application.OnKey "5"
Application.OnKey "6"
Application.OnKey "7"
Application.OnKey "8"
Application.OnKey "9"
End Sub


Sub check0()
x = 0
If ActiveCell.Row > 1 Then
Select Case ActiveCell.Column
Case 1
ActiveCell.Value = x
ActiveCell.Offset(0, 1).Select
If Len(ActiveCell.Value) > 1 Then ActiveCell.Select
Case 2
ActiveCell.Value = ActiveCell.Value * 10 + x
If Len(ActiveCell.Value) = 4 Then ActiveCell.Offset(0, 1).Select
If Len(ActiveCell.Value) > 4 Then ActiveCell.Select
Case 3
ActiveCell.Value = ActiveCell.Value * 10 + x
If Len(ActiveCell.Value) = 6 Then ActiveCell.Offset(1, -2).Select
If Len(ActiveCell.Value) > 6 Then ActiveCell.Select
Case Else
ActiveCell.Value = ActiveCell.Value * 10 + x
End Select
Else
ActiveCell.Value = ActiveCell.Value * 10 + x
End If
End Sub


Sub check1()
x = 1
If ActiveCell.Row > 1 Then
Select Case ActiveCell.Column
Case 1
ActiveCell.Value = x
ActiveCell.Offset(0, 1).Select
If Len(ActiveCell.Value) > 1 Then ActiveCell.Select
Case 2
ActiveCell.Value = ActiveCell.Value * 10 + x
If Len(ActiveCell.Value) = 4 Then ActiveCell.Offset(0, 1).Select
If Len(ActiveCell.Value) > 4 Then ActiveCell.Select
Case 3
ActiveCell.Value = ActiveCell.Value * 10 + x
If Len(ActiveCell.Value) = 6 Then ActiveCell.Offset(1, -2).Select
If Len(ActiveCell.Value) > 6 Then ActiveCell.Select
Case Else
ActiveCell.Value = ActiveCell.Value * 10 + x
End Select
Else
ActiveCell.Value = ActiveCell.Value * 10 + x
End If
End Sub


Sub check2()
x = 2
If ActiveCell.Row > 1 Then
Select Case ActiveCell.Column
Case 1
ActiveCell.Value = x
ActiveCell.Offset(0, 1).Select
If Len(ActiveCell.Value) > 1 Then ActiveCell.Select
Case 2
ActiveCell.Value = ActiveCell.Value * 10 + x
If Len(ActiveCell.Value) = 4 Then ActiveCell.Offset(0, 1).Select
If Len(ActiveCell.Value) > 4 Then ActiveCell.Select
Case 3
ActiveCell.Value = ActiveCell.Value * 10 + x
If Len(ActiveCell.Value) = 6 Then ActiveCell.Offset(1, -2).Select
If Len(ActiveCell.Value) > 6 Then ActiveCell.Select
Case Else
ActiveCell.Value = ActiveCell.Value * 10 + x
End Select
Else
ActiveCell.Value = ActiveCell.Value * 10 + x
End If
End Sub


Sub check3()
x = 3
If ActiveCell.Row > 1 Then
Select Case ActiveCell.Column
Case 1
ActiveCell.Value = x
ActiveCell.Offset(0, 1).Select
If Len(ActiveCell.Value) > 1 Then ActiveCell.Select
Case 2
ActiveCell.Value = ActiveCell.Value * 10 + x
If Len(ActiveCell.Value) = 4 Then ActiveCell.Offset(0, 1).Select
If Len(ActiveCell.Value) > 4 Then ActiveCell.Select
Case 3
ActiveCell.Value = ActiveCell.Value * 10 + x
If Len(ActiveCell.Value) = 6 Then ActiveCell.Offset(1, -2).Select
If Len(ActiveCell.Value) > 6 Then ActiveCell.Select
Case Else
ActiveCell.Value = ActiveCell.Value * 10 + x
End Select
Else
ActiveCell.Value = ActiveCell.Value * 10 + x
End If
End Sub


Sub check4()
x = 4
If ActiveCell.Row > 1 Then
Select Case ActiveCell.Column
Case 1
ActiveCell.Value = x
ActiveCell.Offset(0, 1).Select
If Len(ActiveCell.Value) > 1 Then ActiveCell.Select
Case 2
ActiveCell.Value = ActiveCell.Value * 10 + x
If Len(ActiveCell.Value) = 4 Then ActiveCell.Offset(0, 1).Select
If Len(ActiveCell.Value) > 4 Then ActiveCell.Select
Case 3
ActiveCell.Value = ActiveCell.Value * 10 + x
If Len(ActiveCell.Value) = 6 Then ActiveCell.Offset(1, -2).Select
If Len(ActiveCell.Value) > 6 Then ActiveCell.Select
Case Else
ActiveCell.Value = ActiveCell.Value * 10 + x
End Select
Else
ActiveCell.Value = ActiveCell.Value * 10 + x
End If
End Sub


Sub check5()
x = 5
If ActiveCell.Row > 1 Then
Select Case ActiveCell.Column
Case 1
ActiveCell.Value = x
ActiveCell.Offset(0, 1).Select
If Len(ActiveCell.Value) > 1 Then ActiveCell.Select
Case 2
ActiveCell.Value = ActiveCell.Value * 10 + x
If Len(ActiveCell.Value) = 4 Then ActiveCell.Offset(0, 1).Select
If Len(ActiveCell.Value) > 4 Then ActiveCell.Select
Case 3
ActiveCell.Value = ActiveCell.Value * 10 + x
If Len(ActiveCell.Value) = 6 Then ActiveCell.Offset(1, -2).Select
If Len(ActiveCell.Value) > 6 Then ActiveCell.Select
Case Else
ActiveCell.Value = ActiveCell.Value * 10 + x
End Select
Else
ActiveCell.Value = ActiveCell.Value * 10 + x
End If
End Sub


Sub check6()
x = 6
If ActiveCell.Row > 1 Then
Select Case ActiveCell.Column
Case 1
ActiveCell.Value = x
ActiveCell.Offset(0, 1).Select
If Len(ActiveCell.Value) > 1 Then ActiveCell.Select
Case 2
ActiveCell.Value = ActiveCell.Value * 10 + x
If Len(ActiveCell.Value) = 4 Then ActiveCell.Offset(0, 1).Select
If Len(ActiveCell.Value) > 4 Then ActiveCell.Select
Case 3
ActiveCell.Value = ActiveCell.Value * 10 + x
If Len(ActiveCell.Value) = 6 Then ActiveCell.Offset(1, -2).Select
If Len(ActiveCell.Value) > 6 Then ActiveCell.Select
Case Else
ActiveCell.Value = ActiveCell.Value * 10 + x
End Select
Else
ActiveCell.Value = ActiveCell.Value * 10 + x
End If
End Sub


Sub check7()
x = 7
If ActiveCell.Row > 1 Then
Select Case ActiveCell.Column
Case 1
ActiveCell.Value = x
ActiveCell.Offset(0, 1).Select
If Len(ActiveCell.Value) > 1 Then ActiveCell.Select
Case 2
ActiveCell.Value = ActiveCell.Value * 10 + x
If Len(ActiveCell.Value) = 4 Then ActiveCell.Offset(0, 1).Select
If Len(ActiveCell.Value) > 4 Then ActiveCell.Select
Case 3
ActiveCell.Value = ActiveCell.Value * 10 + x
If Len(ActiveCell.Value) = 6 Then ActiveCell.Offset(1, -2).Select
If Len(ActiveCell.Value) > 6 Then ActiveCell.Select
Case Else
ActiveCell.Value = ActiveCell.Value * 10 + x
End Select
Else
ActiveCell.Value = ActiveCell.Value * 10 + x
End If
End Sub


Sub check8()
x = 8
If ActiveCell.Row > 1 Then
Select Case ActiveCell.Column
Case 1
ActiveCell.Value = x
ActiveCell.Offset(0, 1).Select
If Len(ActiveCell.Value) > 1 Then ActiveCell.Select
Case 2
ActiveCell.Value = ActiveCell.Value * 10 + x
If Len(ActiveCell.Value) = 4 Then ActiveCell.Offset(0, 1).Select
If Len(ActiveCell.Value) > 4 Then ActiveCell.Select
Case 3
ActiveCell.Value = ActiveCell.Value * 10 + x
If Len(ActiveCell.Value) = 6 Then ActiveCell.Offset(1, -2).Select
If Len(ActiveCell.Value) > 6 Then ActiveCell.Select
Case Else
ActiveCell.Value = ActiveCell.Value * 10 + x
End Select
Else
ActiveCell.Value = ActiveCell.Value * 10 + x
End If
End Sub


Sub check9()
x = 9
If ActiveCell.Row > 1 Then
Select Case ActiveCell.Column
Case 1
ActiveCell.Value = x
ActiveCell.Offset(0, 1).Select
If Len(ActiveCell.Value) > 1 Then ActiveCell.Select
Case 2
ActiveCell.Value = ActiveCell.Value * 10 + x
If Len(ActiveCell.Value) = 4 Then ActiveCell.Offset(0, 1).Select
If Len(ActiveCell.Value) > 4 Then ActiveCell.Select
Case 3
ActiveCell.Value = ActiveCell.Value * 10 + x
If Len(ActiveCell.Value) = 6 Then ActiveCell.Offset(1, -2).Select
If Len(ActiveCell.Value) > 6 Then ActiveCell.Select
Case Else
ActiveCell.Value = ActiveCell.Value * 10 + x
End Select
Else
ActiveCell.Value = ActiveCell.Value * 10 + x
End If
End Sub

Anzeige
AW: Automatisch zur nächsten Zelle springen (ohne
22.02.2004 22:38:55
Nepumuk
Hallo Reinhard,
die Idee ist an sich nicht schlecht, aber das funktioniert bei mir auf dem Ziffernblock nicht, sondern nur mit den Ziffern der Schreibmaschinentastatur.
Gruß
Nepumuk
AW: Automatisch zur nächsten Zelle springen (ohne
23.02.2004 20:28:23
Reinhard
Hallo Nepumuk,
hatte ich nicht getestet. Scheinbar kann man mit onkey nicht die Ziffern im Ziffernblock auswerten.
Gruß
Reinhard

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige