Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1068to1072
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

In einer Schleife auf Tastendruck warten

In einer Schleife auf Tastendruck warten
29.04.2009 13:58:25
Bernd
Hallo Excelisten speziell Tino,
die u.a. Antwort von Tino funtioniert, wenn ich sie nachbaue. Wenn ich sie aber in mein Modul einbaue geht es nicht.
Ich verwende eine Auto_Open wie folgt:
Sub Auto_Open()
manueller_Ablauf = "nein"
Application.OnKey "%m", "Man_ablauf_setzen"
Application.OnTime Now + TimeSerial(0, 1, 0), "TasteZuruecksetzen"
' If manueller_Ablauf = "nein" Then
' Ablauf_Start
' End If
End Sub


Falls ich Alt+m drücke wird in "Man_ablauf_setzen" u.a die Variable manueller_Ablauf auf "ja" gesetzt.
Das funktioniert auch, sobald ich jedoch den Sub "Ablauf_Start" mit reinnehme (hier auskommentiert)
Wird das ONKEY ignoriert und gleich "Ablauf_Start" gestartet.
Was mache ich falsch.
Viele Grüße
Bernd
===== Ab hier die Antwort von Tino ========= weiter unten meine Anfrage ==========
Hallo,
vielleicht so.
OnKey und OnTime ist in der Hilfe beschrieben.
kommt als Code in DieseArbeitsmappe
Option Explicit


Private Sub Workbook_Open()
Application.OnKey "^m", "MeinMakro"
'OnKey nach einer Minute zurücksetzen
Application.OnTime Now + TimeSerial(0, 1, 0), "TasteZuruecksetzen"
End Sub


Modul Modul1
Option Explicit
Sub MeinMakro()
Call TasteZuruecksetzen 'OnKey zurücksetzen
MsgBox "ich mache was"
End Sub


Sub TasteZuruecksetzen()
Application.OnKey "^m"
End Sub


Gruß Tino
========= Hier meine Anfrage ========
Bezieht sich auf diese Nachricht:
Hallo liebe Excelisten,
ich habe leider im Archiv nichts finden können.
Ich habe ein Makro, welches automatisch nach Öffnen der Excel-Datei startet. Das läuft auch ganz gut.
Jetzt möchte ich eine Warteschleife von einer Minuten einbauen und in dieser Zeit soll auf einen Tastendruck gewartet werden z.B. ALT+m.
Nach diesem Tastendruck soll dann irgendetwas ablaufen.
Hat da jemand eine Idee?
Viele Grüße
Bernd G.

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

Betreff
Datum
Anwender
Anzeige
AW: In einer Schleife auf Tastendruck warten
29.04.2009 14:27:54
Tino
Hallo,
versuche es mal so rum und starte die Überprüfung von manueller_Ablauf nach Ablauf der Zeit, also wenn TasteZuruecksetzen ausgeführt wird.
Beispiel:
Modul Modul1
Option Explicit 
 
Dim manueller_Ablauf As String 
 
Sub Auto_Open() 
 manueller_Ablauf = "nein" 
 Application.OnKey "^m", "Man_ablauf_setzen" 
 Application.OnTime Now + TimeSerial(0, 1, 0), "TasteZuruecksetzen" 
End Sub 
 
Sub Check_Ablauf() 
 If manueller_Ablauf = "nein" Then 
  Call Ablauf_Start 
 End If 
End Sub 
 
 
Sub Man_ablauf_setzen() 
 Call TasteZuruecksetzen 'OnKey zurücksetzen 
 manueller_Ablauf = "ja" 
End Sub 
 
Sub TasteZuruecksetzen() 
 Application.OnKey "^m" 
 Call Check_Ablauf 
End Sub 


Noch was, Alt+m funktioniert unter meiner Version nicht (xl2007), ist wahrscheinlich reserviert.
Daher verwende ich Strg+m
Gruß Tino

Anzeige
Korrektur...
29.04.2009 14:40:03
Tino
Hallo,
so ist es besser und richtig.
Teste mal.
Dim manueller_Ablauf As String
Dim myTimer As Date
Sub Auto_Open()
 manueller_Ablauf = "nein"
 Application.OnKey "^m", "Man_ablauf_setzen"
 myTimer = Now + TimeSerial(0, 1, 0)
 Application.OnTime myTimer, "TasteZuruecksetzen"
End Sub

Sub Check_Ablauf()
 If manueller_Ablauf = "nein" Then
  Call Ablauf_Start
 End If
End Sub


Sub Man_ablauf_setzen()
 manueller_Ablauf = "ja"
 Call TasteZuruecksetzen 'OnKey zurücksetzen 
End Sub

Sub TasteZuruecksetzen()
 On Error Resume Next
    Application.OnTime myTimer, "TasteZuruecksetzen", , False
 On Error GoTo 0
 
 Application.OnKey "^m"
 Call Check_Ablauf
End Sub


Gruß Tino

Anzeige
AW: Korrektur...
30.04.2009 07:10:17
Bernd
Hallo Tino,
finde ich toll, dass Du Dich noch mal gemeldet hast!.
Ich werd's heute noch mal probieren.
Und mich evtl. wieder melden.
Vielen Dank erste einmal!
Gruß Bernd
AW: Korrektur...
30.04.2009 10:59:37
Bernd
Hallo Tino,
es hat alles geklappt.
Vielen Dank noch einmal!
Du bist sehr aktiv im Forum, das ist klasse und durch Leute wie Dich ist
es auch mit das beste Excel-Forum.
Gruß
Bernd G.

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige