25.02.2017, 18:53
Nein, nicht wenn ich das richtig verstanden habe!
Ist unter DATEN zu finden.
Ist unter DATEN zu finden.
Änderung von Feldwert in Tabelle1 = VBA-Code wird ausgeführt
|
25.02.2017, 19:33
Hallo Julia,
überleg mal, woher soll Excel wissen, ob das nach 10 Sekunden eine Korrektur oder eine neue Eingabe ist? Hm, und eine Korrektur könnte ja auch nach einer längeren Unterbrechung erfolgen, z.B. einem Telefongespräch oder einer Pause ...
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
25.02.2017, 20:22
(25.02.2017, 19:33)schauan schrieb: überleg mal, woher soll Excel wissen, ob das nach 10 Sekunden eine Korrektur oder eine neue Eingabe ist? Hm, und eine Korrektur könnte ja auch nach einer längeren Unterbrechung erfolgen, z.B. einem Telefongespräch oder einer Pause ...Weil die Eingabe nicht angenommen wird, da die Eingabe kein Wert aus der Liste ist - und somit ungültig.
25.02.2017, 21:25
Hallo Julia,
da braucht Excel aber keine 10 Sekunden, um Deine Eingabe nicht anzunehmen. Das merkt Excel sofort, wenn Du ENTER drückst.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
25.02.2017, 21:52
Das ist ja auch o.k., dann soll der Code ja auch ausgeführt werden. Aber nicht, wenn die Eingabe falsch ist.
26.02.2017, 00:24
Hallo Julia,
mit Gültigkeit meinte ich Deine Datenprüfung. Die nannte sich früher Datengültigkeit. Damit ich mir nicht den Mund fuselig rede anbei eine Beispielmappe mit dem, wie ich es meinte: Datenprüfung per VBA.xlsm (Größe: 20,5 KB / Downloads: 5)
Gruß Atilla
jo danke. Nur bringt mir das ja nichts. Es wird nach wie vor das Feld geändert. O.k., ich kann nicht auf Wiederholen klicken, aber das würde man ja ohnehin eher nicht tun, sondern die eingabe Korrigieren bzw. Abbrechen - und das wäre das gleiche wie mit dieser Gültigkeitsprüfung. Die findet doch ohnehin statt. Einen Unterschied zwischen D1 und F1 gibt es nicht, oder?
Liste & Zelldropdown habe ich ja ohnehin so eingestellt.
26.02.2017, 20:28
Hallo Julia,
eine Variante wäre noch, neben die Eingabezelle einen Button zu setzen mit dem Du das Makro nach erfolgreicher Eingabe startest. Damit der Anwender erkennt, ob er den Button gedrückt hat oder nicht, könntest Du mit dem bisherigen Makro die Eingabezelle z.B. gelb färben und wenn der Anwender den Button drückt, nimmst Du die Farbe wieder raus. Der Code von Atilla kann bestimmt weiter angepasst und die Ausgabe der Meldungen reduziert werden. Ich würde ggf. nach der Prüfung auf Veränderung den Inhalt der Auswahlzelle nach D1 oder eine andere geeignete Stelle übernehmen. Dann kannst Du bei der nächsten Eingabe prüfen, ob etwas anderes ausgewählt wurde. Bei einer Falscheingabe stellt die Datenprüfung ja auf den vorigen Wert zurück. Das ist so jetzt nicht enthalten. Im Moment bekommst Du auch bei gleichem Zellinhalt die Meldung, es hätte sich was geändert. Allerdings wäre die Frage, ob es eventuell erwünscht ist, wenn Du den gleichen Inhalt nochmal wählst, dass dann das Makro nochmal ausgeführt wird. Falls ja, macht mein Vorschlag keinen Sinn.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Es ist nicht erwünschst, dass das Marko nochmal ausgeführt wird, wenn die Eingabe falsch war. Denn dann springt sie ja auch den vorherigen(richtigen Wert zurück). Im Grunde ist die Anforderung ganz einfach: Nur bei erfoglreicher Änderung soll das Makro ausgeführt werden. Sonst nicht.
Ein Extraknopf würde viel mehr Zeit beanspruchen. So lange dauert die Berechnung ja zum Glück (noch) nicht. Er rechnet halt zur Zeit 1-4x sowas, je nachdem wie oft man auf Wiederholen oder etwas falsches eingibt. Wobei ja nur 1x nötig wäre. Es geht zum Glück ja auch nix kaputt. Der Benutzer bekommt ja Feedback -> Falscher Wert. Und korrigiert daher auch stets. Im Grunde gehts nur noch darum, die unnötigen Codeausführungen sein zu lassen. Das ist aber kein besonders dramatisches Problem, weil die Rechner recht fit sind. Das mit dem in D1 schreiben hört sich theoretisch ganz gut an, wobei ich nicht wüßte wie ich das anstellen sollte. (26.02.2017, 16:12)o0Julia0o schrieb: jo danke. Nur bringt mir das ja nichts. Es wird nach wie vor das Feld geändert. O.k., ich kann nicht auf Wiederholen klicken, aber das würde man ja ohnehin eher nicht tun, sondern die eingabe Korrigieren bzw. Abbrechen - und das wäre das gleiche wie mit dieser Gültigkeitsprüfung. Die findet doch ohnehin statt. Einen Unterschied zwischen D1 und F1 gibt es nicht, oder? Hallo Julia, was für ein Qutsch erzählst Du da. Ich habe geschrieben, das man man statt die Prüfung über die Datengültigkeit laufen zu lassen, das auch per Vba erledigen kann. Habe dazu ein Beispiel eingestellt. Und warum das Ganze, weil es Dich stört, mich würde es nerven, dass bei der Datenprüfung unter bestimmten Voraussetzungen die Msgbox mehrmals hintereinander aufgeht. Auf diesen Vorgang hast Du keinen Einfluss auch nicht per Code. Deshalb die Alternative. Richtig, ich mach das per Code, was Du mit der Datenprüfung gemacht hast. Nur kann ich jetzt nach Lust und Laune bestimmen, wann und wie oft die Msgbox sich meldet. Unten noch mal eine veränderte Version. Was in D1 und F1 passiert ist zwar das gleiche, aber im Code werden sie gravierend anders behandelt. Denn die Quelle der Liste in D hat einen Formelbezug , F dagegen einen benannten Bereich als Quelle. Im Code werden die Quellen der Datenprüfung ausgelesen um festzustellen ob die Eingabe aus den Bereichen ist. Für Dich ist es nicht der Rede Wert aber für Andere ist das sicher eine interessante Vorgehensweise, die einer genaueren Betrachtung würdig ist. Langsam habe ich das Gefühl, ich hätte auf meine Frau hören sollen, die mir immer rät: Gib Dich nicht mit fremden Frauen ab. Datenprüfung per VBA(ati-2).xlsm (Größe: 20,51 KB / Downloads: 1)
Gruß Atilla
|
|