Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1620to1624
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

CTRL-V abfangen

CTRL-V abfangen
14.05.2018 07:08:34
Stefan
Hallo liebes Forum,
ich möchte die CTRL-V (Einfügen)-Tastenkombination abfangen und basierend auf dem Inhalt der Zwischenablage entweder eine eigene Bearbeitung anspringen oder die Standardbearbeitung aufrufen. Das Abfangen mit "Application.OnKey "^v", "Einfuegen_Check" funktioniert, ebenso das Auslesen der Zwischenablage und die eigene Bearbeitung.
Der Aufruf der Standardbearbeitung macht aber Probleme. Wenn mich der Inhalt der Zwischenablage nicht interessiert, probiere ich die Standardbearbeitung mit folgendem Code aus meinem Makro aufzurufen:
Sub "Einfuegen_Check"()
"Application.OnKey "^v"  ' Standardbearbeitung von CTRL-V wieder einschalten
SendKeys "^v", True      ' Aufruf der Standardbearbeitung
"Application.OnKey "^v", "Einfuegen_Check"  ' CRTL-V wieder abfangen
End Sub
Dieser Code führt offenbar zu einer Endlosschleife. Beim Ausführen im Einzelschrittmodus des Debuggers wird außerdem beim Ausführen des Sendkey-Kommandos die Numlock-Taste aktiviert. Anschließend wird der Inhalt der Zwischenablage in das Makrofenster gepasted (das ist ja ok). Ausführen ohne Debugger führt, wie gesagt, zu einer Endlosschleife.
Herzlichen Dank für jedes Hilfsangebot!
Stefan

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: CTRL-V abfangen
14.05.2018 08:22:25
ChrisL
Hi Stefan
NumLock ist ein bekanntes Problem. Siehe Google. NumLock einfach wieder aktivieren...
Sendkeys "{NUMLOCK}", True
Deine Endlosschleife kann ich mit XL2016 nicht reproduzieren. Hier der Test:
Sub Einfuegen_Check()
Application.OnKey "^v"  ' Standardbearbeitung von CTRL-V wieder einschalten
SendKeys "^v", True      ' Aufruf der Standardbearbeitung
MsgBox "hallo welt"
Application.OnKey "^v", "Einfuegen_Check"  ' CRTL-V wieder abfangen
End Sub
cu
Chris
AW: CTRL-V abfangen
14.05.2018 17:39:21
Stefan
Hallo Chris,
danke für den Versuch, aber wenn Du in Deiner Version die MsgBox-Zeile auskommentierst, wirst Du vermutlich das gleiche Problem haben. Ich habe es inzwischen auch unter EXCEL 2016 reproduziert.
Der Code führt beim Einfügen zu einem flackernden Cursor, der für mich auf eine Endlosschleife hindeutet.
Stefan
Anzeige
AW: CTRL-V abfangen
15.05.2018 08:19:27
ChrisL
Hi Stefan
Ja stimmt. Siehe Antwort Daniel oder benutze DoEvents...
Sub Einfuegen_Check()
Application.OnKey "^v"  ' Standardbearbeitung von CTRL-V wieder einschalten
SendKeys "^v", True      ' Aufruf der Standardbearbeitung
DoEvents
Application.OnKey "^v", "Einfuegen_Check"  ' CRTL-V wieder abfangen
End Sub
cu
Chris
AW: CTRL-V abfangen
14.05.2018 18:03:07
Daniel
Hi
wenn du "normal" einfügen willst dann führe einfach den Befehl ActiveSheet.Paste aus.
das entspricht dem CTRL-V und du sparst dir damit das Umschalten und das SendKeys.
Gruß Daniel
AW: CTRL-V abfangen
16.05.2018 20:49:29
Stefan
Hi Daniel,
ja, es kann so einfach sein. Tausend Dank, so funktioniert es!
Danke auch an Chris für den Versuch.
Cheers, Stefan
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige