Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
196to200
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
196to200
196to200
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

OnKey aus-ein

OnKey aus-ein
01.01.2003 17:19:23
T.Tauber
Hallo,

ich möchte die "gefährlichen" Tasten {ESC} und{DEL} entschärfen.
Dazu benutze ich die OnKey-Funktion.
Das funktioniert auch, es werden die Tasten abgefangen und die gewünschte Prozedur aufgerufen.

Jetzt mein Problem:
Je nach selbst geschriebenen "Sicherheitseinstellungen" soll innerhalb der Funktion die Taste gesperrt bleiben, nach einem Hinweis möglich sein oder generell erlaubt sein. Das Sperren funktioniert auch, aber wie bekomme ich es hin, dass innerhalb der Funktion die Taste als ganz normaler Tastenanschlag ausgewertet wird, so als gäbe es die OnKey-Anweisung gar nicht?
Mit SendKey habe ich es versucht, ebenfalls mit einer kurzzeitigen Außerkraftsetzung von OnKey.
Beides hat nicht zum gewünschten Erfolg geführt.
Bestimmt wieder ein kleine blöder Fehler.
Könnt Ihr mir weiterhelfen?

Vielen Dank im voraus von einem kleinen Hobbyprogrammierer

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: OnKey aus-ein
01.01.2003 18:00:35
Ramses
Hallo,

Warum deaktiviertst du innerhalb der Funktion die Taste nicht

Application.OnKey "{ESC}"

und am Ende wieder aktivieren ?

Gruss Rainer

Re: OnKey aus-ein
01.01.2003 18:35:04
T.Tauber
Genau das habe ich ja probiert, geht leider nicht.

Vielleicht sicherheitshalber noch einmal der Code, um Mißverständnissen vorzubeugen.
Ich schreibe hier nur gekürzt auf, eigentlich eine sinnlose Verbiegung, da eine Funktion aufgerufen werden soll, die dann nur den Tastendruck ausführen soll.

In Workbook_Open steht:
Application.OnKey "{ESC}", "ZellInhaltEntfernung_Esc"

In der Funktion "ZellInhaltEntfernung_Esc" stand schon:

Application.OnKey "{ESC}" (danach ging {ESC} gar nicht mehr)

SendKeys "{ESC}", True (es passiert nichts)

Nehme ich übrigens
SendKeys "Max", True
trägt das Excel brav ein.

Was muss ich noch ändern?

T.Tauber

Anzeige
Re: OnKey aus-ein
01.01.2003 19:39:21
Ramses
Hallo,

vielleicht ein strategisches Problem ?

Du kannst ESC nur dann senden, wenn wirklich etwas zum abbrechen vorhanden ist.

Ich kenne den Grund für diese "sinnlose Verbiegung" nicht, aber grundsätzlich sollte der Code in Ordnung sein.

Gruss Rainer

Re: OnKey aus-ein
01.01.2003 21:34:45
T.Tauber
Bei "ESC" gibt es wirklich nicht immer was zu tun, da hast Du recht.
Aber mit "DEL" geht es genau so wenig.

Hier mal der Code der Funktion:

Function ZellInhaltEntfernung_Del()
'je nach Sicherheiststufe
If Sheets("Daten").Range("J3").Value = 1 Then
Hinweis = MsgBox("Um versehentliches Löschen von Zellen zu erschweren," & Chr(13) & "wurden die Tasten {Escape} und {Entfernen} deaktiviert." & Chr(13) & Chr(13) & "Um den Zellinhalt zu löschen, bitte entweder die Bearbeitungsleiste benutzen" & Chr(13) & "oder die Sicherheitsstufe anpassen (siehe 'Optionen/Sicherheit')", vbInformation, "Wichtiger Hinweis:")
Exit Function
End If
If Sheets("Daten").Range("J3").Value = 2 Then
Hinweis = MsgBox("Das Entfernen von Zellinhalten und Formeln kann zu Fehlern in den Dienstplanberechnungen führen." & Chr(13) & Chr(13) & "Soll wirklich der Zellinhalt entfernt werden?", 305, "Wichtiger Hinweis:")
If Hinweis = vbCancel Then
Exit Function
End If
End If

SendKeys "{DEL}"
MsgBox "Hier sollte dann Taste 'DEL' funktionieren,tut sie aber noch nicht!"
End Function

Hintergrund ist folgernder:
Es gibt ein Formular, in dem man verschiedene Sicherheitsstufen einstellen kann, die im Blatt "Daten" in Feld "J3" gespeichert werden.
Die höchste Sicherheit ist 1, da ist ein Löschen nicht möglich, bei "2" gibt es eine Sicherheitsabfrage und bei "3" soll gleich das Löschen möglich sein.
Deswegen also das "Verbiegen".
Leider klappt "SendKeys" wirklich nicht!
Der Cursor steht in einem Blatt auf einer Zelle mit einer Formel. Ohne die OnKey-Funktion wird die Formel mit der Enternungstaste gelöscht.
Beim "Verbiegen" passiert nichts.

Wo liegt der Fehler?
T.Tauber

Anzeige
Re: OnKey aus-ein
01.01.2003 22:51:29
Ramses
Hallo Volker,

Wieso schreibst du da eine Funktion ?
Funktionen werden erst bei Neuberechung der Tabelle oder bei Aufruf ausgeführt.
Es sollte immer ein Makro sein weil bestimmte Anweisungen in einer Funktion nicht funktionieren.

Du musst dann natürlich die Application.OnKey wieder einschalten :-)
Das fehlt in deinem Code.

Hier ein Beispiel

Gruss Rainer

Re: OnKey aus-ein
02.01.2003 14:08:54
T.Tauber
Jetzt läuft es!!!!
Vielen Dank.
Das Ändern von einer Funktion zu einem Makro war der entscheidende Schritt!

Viele Grüsse an Rainer, dem Helfer in anscheinend vielen Nöten in diesem Forum!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige