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

Makro Stoppen wenn Schaltfläche gedrückt wird

Makro Stoppen wenn Schaltfläche gedrückt wird
20.01.2004 19:22:00
Glen
Hallo Leute
Ich habe heute dieses Thema schon mal gepostet und auch Hilfe erhalten. Die Hilfe brachte mich als Vba Makrorekorder-Anwender nicht viel weiter.
Meine Frage und Schilderung:
Ich habe ein Makro, dass nach ablaufen von 15 Minuten eine MsgBox erscheinen lässt. Das Makro wird durch eine Schaltfläche (Start) aktiviert. Das Makro läuft soweit einwandfrei.
Wie kann ich jedoch jetzt erreichen, dass wenn innerhalb der 15 Minuten (also während dem das Makro aktiviert ist) die Schaltfläche (Stop) gedrückt wird, dass Makro gestoppt wird?
Mein Makro:

Sub Schaltfläche3_BeiKlick()
Range("G8").Select
ActiveCell.FormulaR1C1 = "b"
Application.OnTime Now + TimeSerial(0, 15, 0), "Meldung_Anlieferung"
Range("I8").Select
Selection.ClearContents
Range("G8").Select
End Sub

Ich bitte euch mir keine komplizierten Erklärungen zu schreiben, da ich bloss VBA mit Makrorekorder anwende und daher eure Mühe und Zeit zum schreiben für grosse Erklährungen eher schade wären.
Vielen Dank im voraus
Glen

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

Betreff
Datum
Anwender
Anzeige
AW: Makro Stoppen wenn Schaltfläche gedrückt wird
20.01.2004 20:12:18
ChrisL
Hi Glen
Schau mal hier...
https://www.herber.de/mailing/067199h.htm
Die Vorlage muesste sich fast eins zu eins uebernehmen lassen.
Du solltest auch wie im Beispiel ein Workbook_BeforeClose Ereignis einbauen. Wenn du die Mappe schliesst, Excel aber nicht, laeuft das Makro sonst trotzdem weiter und loest deine Nachricht aus.
Ein Workbook_BeforeClose Ereignis gehoert wie beschrieben in ein Klassenmodul und das geht so... Alt + F11, links DieseArbeitsmappe doppelklicken, neues Fenster oeffnet sich, links oben Dropdown auf Workbook stellen, rechts oben auf BeforeClose.
Im Gegensatz dazu gehoert der Rest vom Code in ein sogenanntes Standardmodul. Ebenfalls mit Alt + F11 in den VBA-Editor wechseln, ueber Menu, einfuegen, Modul.
Und jetzt wirds trotzdem noch lang, kannst ja die Ohren hmmm Augen schliessen. Auf Select laesst sich relativ einfach verzichten und macht den Codeablauf fluessiger.
Mit...
Range("G8") = "b"
...und...
Range("I8").ClearContents
... erreichst du das Gleiche.
Gibt uebrigens unter Excel-FAQ im Forum ein Kapitel dazu.
Gruss
Chris
Anzeige
Ich bekomm's nicht hin
20.01.2004 21:52:54
Glen
Hallo Leute
Ich habe das Problem noch immer nicht lösen können. Kann jemand bitte weiterhelfen?
Chris:
Danke für deine Hilfe! konnte das "Before_Close" anwenden, jedoch aus dem verlinkten Beispiel (Zeit in der Statusleiste) konnte ich mit meinem Wissen nichts viel anfangen. Wie das mit den Modulen und "Alt+F11" geht weiss ich übrigens (auch wenn' nicht viel ist:)
Ich habe jetzt mal ein kleines Beispiel hochgeladen. https://www.herber.de/bbs/user/3072.xls Wer weiss die Lösung dazu?
Bei drücken auf Bedarf erscheint nach 5 Sekunden eine MsgBox.
Wie kann ich bei der mitgesendeten Datei erreichen, dass wenn innerhalb der 5 Sekunden, (also während dem das Makro aktiviert ist) die Schaltfläche (Kein Bedarf) gedrückt wird, dass Makro gestoppt wird und somit die MsgBox nicht erscheint
Bitte bitte um eine Lösung, komme nach vielen Versuchen mit "Schedule:=False" mit meinen bescheidenen Kenntnissen nicht weiter.
Gruss Glen
Anzeige
Wer kann dem verzweifelten Glen helfen
20.01.2004 23:03:50
Glen
Hallo Leut's
Wie muss das richtig aussehen?

Sub Schaltfläche3_BeiKlick()
Range("G8").Select
ActiveCell.FormulaR1C1 = "b"
Application.OnTime Now + TimeValue("00:00:15"), "Meldung_Anlieferung"
Application.OnTime EarliestTime:=TimeValue("00:00:15"), _
Procedure:="Meldung_Anlieferung", Schedule:=False
Range("I8").Select
Selection.ClearContents
Range("G8").Select
End Sub


Sub Meldung_Anlieferung()
MsgBox "Die Zeit der Anlieferung ist abgelaufen", vbExclamation, "GrL informieren"
End Sub


Sub Schaltfläche4_BeiKlick()
Range("G8").Select
ActiveCell.FormulaR1C1 = "bk"
Range("I8").Select
Selection.ClearContents
Range("G8").Select
End Sub


Ich komme trotz geleisteter Hilfe hier einfach nicht weiter.
Ich will doch bloss, dass nach drücken der Schaltfläche4 die Meldung (MsgBox) nicht erscheint
Bitte um Hilfe
Glen
Anzeige
AW: Wer kann dem verzweifelten Glen helfen
21.01.2004 08:58:31
ChrisL
Hi Glen
Option Explicit
Public Const gsMacro As String = "Meldung_Anlieferung"
Public gdNextTime As Double

Sub StartClock()
gdNextTime = Now + TimeValue("00:00:05")
Application.OnTime earliesttime:=gdNextTime, procedure:=gsMacro, schedule:=True
End Sub


Sub StopClock()
On Error Resume Next
Application.OnTime earliesttime:=gdNextTime, procedure:=gsMacro, schedule:=False
End Sub


Sub Schaltfläche3_BeiKlick()
Range("G8") = "b"
Call StartClock
Range("I8").ClearContents
Range("G8").Select
End Sub


Sub Meldung_Anlieferung()
MsgBox "Die Zeit der Anlieferung ist abgelaufen", vbExclamation, "GrL informieren"
End Sub


Sub Schaltfläche15_BeiKlick()
If MsgBox("Wollen Sie wirklich alle Bedarfe löschen?", vbYesNo + vbQuestion, _
"L Ö S C H E N    ?") = vbNo Then Exit Sub
Range("G8:G20,I8:I20").ClearContents
Range("A1").Select
End Sub


Sub Schaltfläche4_BeiKlick()
Call StopClock
End Sub


Gruss
Chris
Anzeige
Super Chris D A N K E !
21.01.2004 09:18:44
Glen
vielen vielen Dank Chris
das funktioniert wunderbar!
Gruss
Glen

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige