Thema Datum  Von Nutzer Rating
Antwort
17.10.2023 13:42:35 Bernd
NotSolved
Blau Makro anhalten bis Tastendruck erfolgt ist
17.10.2023 15:16:30 xlKing
Solved
18.10.2023 09:18:53 Bernd
NotSolved
18.10.2023 01:44:59 Gast7777
NotSolved
18.10.2023 08:55:15 Bernd
NotSolved
18.10.2023 15:08:43 Gast7777
NotSolved
18.10.2023 16:14:00 xlKing
NotSolved
19.10.2023 12:01:48 Bernd
NotSolved
19.10.2023 23:50:01 xlKing
Solved
20.10.2023 09:20:23 Bernd
NotSolved

Ansicht des Beitrags:
Von:
xlKing
Datum:
17.10.2023 15:16:30
Views:
106
Rating: Antwort:
 Nein
Thema:
Makro anhalten bis Tastendruck erfolgt ist

Hallo Bernd,

Dazu musst du zunächst ganz oben im Modul noch vor der ersten Sub auf eine API-Funktion referenzieren, die dir zurückgibt ob eine Taste gedrückt wurde.

Um den Code nun "anzuhalten" musst du in eine Dauerschleife "Do:Loop" gehen in der du den Tastendruck abfragst. Damit du gleichzeitig auch die Zelle wechseln kannst ist ebenfalls ein DoEvents nötig.

Wenn Pause oder E gedrückt wird springt er allerdings in die aktive Zelle und gibt das entsprechende Zeichen ein. Um das zu verhindern wird oben im Code die Standardfunktion mit Application.OnKey ausgeschaltet und unten wieder eingeschaltet.

Insgesamt sieht der Code dann etwa so aus:

Declare PtrSafe Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Long) As Integer
Sub Test()
  
  Dim Keypress1 As Boolean, Keypress2 As Boolean
  
  Application.OnKey "{" & vbKeySpace & "}", ""
  Application.OnKey "{" & vbKeyE & "}", ""
  
  '... Dein Einstiegscode
  
  'Warteschleife bis Tastendruck
  Do
    Keypress1 = CBool(GetAsyncKeyState(vbKeySpace))
    Keypress2 = CBool(GetAsyncKeyState(vbKeyE))
    DoEvents
  Loop Until Keypress1 Or Keypress2

  If Keypress1 Then
    GoTo Start
  ElseIf Keypress2 Then
    GoTo Ende
  End If
  
Start:
  '... Dein weiterer Code
Ende:
  Application.OnKey "{" & vbKeySpace & "}"
  Application.OnKey "{" & vbKeyE & "}"
  
End Sub

Gruß Mr. K.

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
17.10.2023 13:42:35 Bernd
NotSolved
Blau Makro anhalten bis Tastendruck erfolgt ist
17.10.2023 15:16:30 xlKing
Solved
18.10.2023 09:18:53 Bernd
NotSolved
18.10.2023 01:44:59 Gast7777
NotSolved
18.10.2023 08:55:15 Bernd
NotSolved
18.10.2023 15:08:43 Gast7777
NotSolved
18.10.2023 16:14:00 xlKing
NotSolved
19.10.2023 12:01:48 Bernd
NotSolved
19.10.2023 23:50:01 xlKing
Solved
20.10.2023 09:20:23 Bernd
NotSolved