Betätigung eines Makrobuttons während man noch Zel
26.09.2015 15:20:56
Peter
habe dies bereits in zwei anderen Foren gepostet aber leider keine Antworten erhalten ...
Ich habe da diese Excel xlsm Arbeitsmappe, die mit mehreren Makros versehen ist.
Unter anderem frage ich bei einem Sheet 'X' ab, ob es gerade verändert wurde:
Private Sub Worksheet_Change(ByVal Target As Range)
Auf diesem Sheet 'X' wiederum gibt es einen Formularsteuerelementebutton 'Exit'.
Wenn gedrückt und etwas auf der Seite verändert worden ist (ich setze ein internes Flag bei jeder erkannten Änderung), frage ich nach, ob die Änderungen gespeichert werden sollen, speichere dementsprechend ggf., lösche die Eingabefelder wieder, springe auf eine andere Seite und verstecke dieses Sheet 'X' (wieder) (xlSheetVeryHidden).
Klappt soweit so gut.
Mein Problem beginnt dann, wenn jemand gerade etwas in eine Zelle auf Sheet 'X' schreibt und - ohne eine andere Zelle anzuklicken - quasi live aus dem Editiermodus in dem er noch ist auf den Exit-Button klickt.
1. wird >jetztnicht 2. >nach Da die Seite jetzt versteckt ist (und alle Felder dort von mir bei Exit gelöscht wurden) kommt es zu einer Fehlermeldung, weil mein Worksheet_Change - Code nichts mehr findet (alle Felder leer).
Meine Fragen sind:
- Kann man irgendwie in VBA erkennen, dass gerade eine Zelle bearbeitet wird?
- Kann man per VBA diesen Modus ggf. verlassen (und damit auch das Change-Ereignis gleich auslösen)?
- Wenn nicht, was sonst könnte ich tun?
Ist ein seltsames Problem. Kommt selten vor, da die Bediener meistens vor dem Verlassen woanders hinklicken..
Aber wenn, könnte ich zwar den Fehler unterdrücken, die Eingabe in dieser Zelle wäre aber verloren gegangen.
Weiß jemand Rat?
Eine Beispieldatei findet ihr hier: https://www.herber.de/bbs/user/100407.xlsm