Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1636to1640
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
lange Dateneingabe verkürzen mittels VBA?
07.08.2018 14:29:57
Tom
Hallo,
Dieses Forum hat mir als bisherig stiller Mitleser schon bei vielen Problemen helfen können, aber dieses mal stehe ich vor einem Problem, wo ich keine Anhaltspunkte finden kann:
Ausgangslage:
ich muss regelmäßig eine lange Liste von 500 Werten eingeben, wobei die Ausprägung jeweils nur 1 oder 2 sein kann.
Es läuft also bspw. so:
1 Enter, 1 Enter, 2 Enter, 1 Enter, 2 Enter, 2 Enter,..... usw... - insgesamt 500x, also 1000 Tastenanschläge....
Jetzt habe ich mir gedacht, dass man sich evtl. die 500 dazwischen liegenden Enter Tasten sparen könnte...?
Also sobald in Zeile 1 der Wert 1 (oder 2) eingegeben wird, startet ein Makro und springt in zeile 2, wo dann wieder nur 1 oder 2 gedrückt wird und so weiter...
Die Funktion "Worksheet_Change" funktioniert hier leider nicht, da ja die Prüfung erst beginnt, sobald die Zelle tatsächlich geändert wurde (also erst wieder Enter gedrückt wurde).
Sprich, man braucht ein Art Event, das schon beim Editieren einer Zelle greift und nicht erst nach dem Editieren.
Ich hoffe, meine Problemstellung ist halbwegs klar ;)
Vielen Dank!
Liebe Grüße
Tom

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: lange Dateneingabe verkürzen mittels VBA?
07.08.2018 14:45:32
Rudi
Hallo,
man braucht ein Art Event, das schon beim Editieren einer Zelle greift
Im Editiermodus läuft VBA nicht.
Du könntest die Zahlen in eine TextBox eingeben und auf deren Change-Event reagieren.
Gruß
Rudi
AW: alles in eine Zelle ...
07.08.2018 14:48:33
Fennek
Hallo,
schreibe alle "1" und "2" ohne Trennzeichen in eine Zelle und verteile die Eingabe mit VBA auf die 500 Zellen.
mfg
dann aber vorher ....
07.08.2018 15:04:29
Rudi
... die Zelle als TEXT formatieren oder mit einem ' beginnen.
Gruß
Rudi
AW: alles in eine Zelle ...
07.08.2018 15:15:48
Tom
Hallo,
Diese Lösung ist leider nicht so praktikabel, weil ich dazwischen immer wieder Markierungen drinnen habe, wo ich auf einen Blick sehe, ob ich eh noch nicht in der Zeile verrutscht bin...
Manchmal passiert es ja, dass man einen 2er zuviel eingibt und man dann schon falsch läuft....
Aber die Idee ist trotzdem nicht schlecht - Danke!
Anzeige
AW: lange Dateneingabe verkürzen mittels VBA?
07.08.2018 14:52:18
Martin
Hallo Tom,
dann verwende ein UserForm mit einem Textfeld. Das Textfeld kannst du direkt bei der Eingabe auswerten.
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
With ActiveCell
Select Case KeyCode
Case 97
ActiveCell = 1
Cells(.Row + 1, .Column).Select
Case 98
ActiveCell = 2
Cells(.Row + 1, .Column).Select
End Select
End With
KeyCode = 0
End Sub
Viele Grüße
Martin
...hier mit Beispieldatei
07.08.2018 15:08:16
Martin
Hallo Tom,
hier noch einmal mein Vorschlag mit Beispieldatei:
https://www.herber.de/bbs/user/123186.xls
Viele Grüße
Martin
Anzeige
AW: ...hier mit Beispieldatei
07.08.2018 15:12:55
Tom
aaahhh, jetzt wird mir es klar!!!!
(Die Datei sagt mehr als 1000 Worte ;))) )
Ja, mit der Lösung kann ich gut leben!!
Vielen DANK!!!!
AW: ...hier mit Beispieldatei
07.08.2018 16:16:10
Tom
Sodala,
ich habe jetzt deine Lösung komplett implementiert und auch schon ein paar Testläufe durchgeführt.
Es funktioniert alles wunderbar und der Zeitgewinn beträgt (derzeit allerdings noch ungeübt) rund 25%!
Nochmals DANKE an dieser Stelle!
AW: ...hier mit Beispieldatei
07.08.2018 18:03:34
Martin
Hallo Tom,
ich danke dir für deine Rückmeldung und freue mich, dass dir diese Lösung viel Zeit einspart.
Viele Grüße
Martin
AW: ...hier mit Beispieldatei
07.08.2018 18:12:07
Martin
Hallo Tom,
jetzt habe ich doch noch einen Hinweis. Du kannst sogar auf die TextBox verzichten und das KeyDown-Ereignis auf den CommandButton anwenden:
Private Sub CommandButton1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As  _
Integer)
With ActiveCell
Select Case KeyCode
Case 97
ActiveCell = 1
Cells(.Row + 1, .Column).Select
Case 98
ActiveCell = 2
Cells(.Row + 1, .Column).Select
Case 27
Exit Sub
End Select
End With
KeyCode = 0
End Sub
Viele Grüße
Martin
Anzeige
...besser und kürzer
08.08.2018 07:49:30
Martin
Hallo Tom,
letzte Nacht ist mit eingefallen, dass ich nur die Tasten des Ziffernblocks berücksichtigt hatte, aber nicht die Tasten in der Zahlenreihe der normalen Tastatur. Die habe ich jetzt auch berücksichtigt. Die TextBox und der CommandButton gehören nun auch der Vergangenheit an:
https://www.herber.de/bbs/user/123195.xls
Ich glaube, dass es jetzt nicht mehr besser geht ;-)
Viele Grüße
Martin
AW: ...besser und kürzer
08.08.2018 16:47:30
Tom
Wow!
Schlanker geht es jetzt wohl wirklich nicht mehr... ;))
Vielen Dank!
AW: lange Dateneingabe verkürzen mittels VBA?
07.08.2018 15:09:42
Tom
Hallo,
Ich habe jetzt auf die Schnelle ein UserForm integriert und deinen Code in das entsprechende Arbeitsblatt eingefügt.
Sobald ich die Eingabe aufrufe öffnet sich das Userform ebenfalls. Gebe ich dann aber einen Wert ein, passiert nichts.
Irgendwo fehlt mir da scheinbar noch die Verknüpfung vom Textfeld zu deinem Code *grübel*
Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige