Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Automatisch zur nächsten Zelle springen (ohne Tab)

Forumthread: 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
Anzeige

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: Automatisch zur nächsten Zelle springen (ohne Tab)
22.02.2004 20:35:01
Nepumuk
Hallo Thomas,
deim Programm: https://www.herber.de/bbs/user/3876.xls
Gruß
Nepumuk
Anzeige
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
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige