sorry, ich weiß, ich habe diese Frage vor 2-3 Tagen schon mal gestellt. Einige User sind sich darüber gegenseitig sogar ein wenig in die Wolle geraten, ohne mein Dazutun. Das wollte ich nicht und habe ich auch nicht erwartet.
Ich habe aber ausführlich dargestellt, warum und worum es mir ging: Ich möchte, dass während des Ablaufs eines Makros, das die Anwender selbst nach Bedarf starten sollen, die ESC-Taste gesperrt wird.
Also, bitte: Wenn jemand eine Lösung weiß, wie ich die ESC-Taste zu Beginn des Makros erst deaktivieren und dann wieder aktivieren kann, dann wäre ich immer noch für Rat und Hilfe dankbar. Vielleicht wird ja noch etwas daraus …
Also bei mir funktioniert Application.EnableCancelKey = xlDisabled.
Hast du’s mal mit einem einfachen Beispiel probiert?
Sub test()
Application.EnableCancelKey = xlDisabled
For x = 1 To 1000000
Cells(x, 1).Value = x
Next
Application.EnableCancelKey = xlEnabled
End Sub
Alternativvorschlag: Setze in irgendeine Zelle einen Merker, der dir anzeigt, ob das Makro bis zum Ende durchgelaufen ist.
Diesen Merker kannst du z.B. bei jeder Eingabe (Worksheet.Change) abfragen. Steht er auf „nicht komplett gelöscht“, unterbindest du weitere Eingaben oder gibst eine Meldung aus…
zeigt einfach nur ein Beispiel wie meines. „Wenn die Esc-Taste gedrückt wird“, passiert bestenfalls gar nix, weil eben der Cancel-Key disabled ist
Oder aber das Marko wird unterbrochen, falls „EnableCancelKey“ nicht funktioniert…