Anzeige
Archiv - Navigation
1564to1568
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
Inhaltsverzeichnis

Tastenkombination mit IF

Tastenkombination mit IF
05.07.2017 15:37:16
JoNNy
Hallo zusammen,
zurzeit tüftel ich ein bisschen an einem "Programm" in Excel.
Dabei wird der Code immer dann ausgeführt wenn ich DELETE drücke.
Nun möchte ich es so handhaben das der Code bei NUR DELETE normal ausgeführt wird und bei der Kombination Strg DELETE nur zum Teil bzw. anders.
Hab schon etwas rumprobiert mit KeyCode und so weiter aber das ist nicht wirklich das was ich wollte.
Gruß JoNNy

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tastenkombination mit IF
05.07.2017 15:46:07
Daniel
Hi
meines Wissens nach kannst du mit Standard-VBA in einer Excelzelle nicht ermitteln, welche Tastenkombinationen gerade gedrückt werden.
Bei Eingabe in eine TextBox könnte das funktionieren, aber nicht in einer Excelzelle.
Bei Zellen kannst du nur die Vorher/Nachher-Wirkungen abfragen.
z.B.
- TargetZelle war vorher gefüllt, ist jetzt leer, CutCopyMode ist nicht aktiv: Delete
- TargetZelle war vorher gefüllt, ist jetzt leer, CutCopyMode ist aktiv: Delete + Shift
Gruß Daniel
AW: Tastenkombination mit IF
05.07.2017 15:55:45
JoNNy
Naja ich sags mal so es ist aufjedenfall möglich
Option Explicit
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare Function GetAsyncKeyState Lib "user32" _
(ByVal vKey As Long) As Integer
Private Const Key_Leer& = &H20
Function CompKey(KCode&) As Boolean
Dim Result%
Result = GetAsyncKeyState(KCode)
CompKey = Result = -32767
End Function
Sub test()
Do While Not CompKey(Key_Leer)
Sleep 10
Loop
DoEvents
MsgBox "Leer gedrückt"
End Sub
Der code ist auch hier aus dem Forum finde aber leider den Post nicht mehr.
Der hat eben wenn er ausgeführt wurde solange gewartet bis er die SPACEBAR "bekommt" und dann weiter gemacht.
Nur ich möchte nicht das der Code stoppt sondern das er wenn ich zur DELETE während dessen die STRG drücke was anderes macht als nur mit DELETE.
Da ich den Code den ich da gepostet hab auch nur grob nachvollziehen kann da ich nie mit FUNCTION arbeite und CallbyValue nicht mein Fall ist und ich mich da erst einlesen müsste wollte ich mal hier fragen. Natürlich würde mir auch nur ne Seite reichen auf der ich alles nachlesen kann dann bastel ich das selbst zusammen nur bis jetzt hab ich da nix gefunden was mir weiterhilft.
Gruß JoNNy
Anzeige
AW: Tastenkombination mit IF
05.07.2017 16:01:02
Max2
Hallo,
der Sub den du aufrufen willst, muss in einem Modul stehen.
In "Workbook_Open()" Event folgendes schreiben:
Application.OnKey "^{DEL}", "Name des Subs_1"
Application.OnKey "{DEL}", "Name des Subs_2"
Die Anführungszeichen sind wichtig!
Lässt du diese weg, funzt es nicht.
Vor dem testen einfach die Datei speichern, schließen und erneut öffnen, vorher startet das Event nicht.
AW: Tastenkombination mit IF
05.07.2017 16:04:25
JoNNy
Hallo Max,
klar so geht es *brettvormkopfwegnehmend*
so hab ichs ja davor schon gemacht.
Ich war nur so drauf verbissen das ich es mit in den bestehenden sub als Quasi
IF "STRGGEDRÜCKT" THEN führe den Code anders aus.
Aber klar ich kann den Code ja 1:1 kopieren und nur die Sachen ändern die anders laufen müssen.
Danke für die Denkhilfe xD.
Gruß JoNNy
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige