Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

wie stoppe ich mein Makro





Frage

ich habe ein Countdon in Excel, erstens sollte der automatisch anfangen wenn die Datei geöffnet wird, nur hierzu muss ich ein Commando eingeben im VBA. sprich strg+G und dort das Commando eingeben und mit Enter bestätigen, ungefähr in diese Richtung nur wie lautet der genau efehl: " ?application.worknoos.open" ? hier mein Code (siehe unten) für den Countdown, der funktioniert wuderbar. ich habe noch ein Button gemacht damit man den Countdown selber starten kann. Nun möchte ich auch ein Button basteln damit ich den Countdown stoppen kann, bzw. den automatichen countdown all 5Sekunden stoppen kann, wie muss der ode hierfür lauten, ich stehe da total auf dem Schlauch und hab einiges probiert aber es will nicht. Kann mir da Jemanden helfen. Im voraus Vielen Dank Uli Sub Countdown() ' ' Ziel = DateValue("12.10.2007") + TimeValue("19:00:00") Jetzt = Now() Delta = Ziel - Now Tage = Round(Delta - 0.5, 0) Delta = (Delta - Tage) * 24 Stunden = Round(Delta - 0.5, 0) Delta = (Delta - Stunden) * 60 Minuten = Round(Delta - 0.5, 0) Delta = (Delta - Minuten) * 60 Sekunden = Round(Delta - 0.5, 0) TimeStr = Str(Tage) + " Tage, " + Str(Stunden) + " Stunden, " + Str(Minuten) + " Minuten, " + Str(Sekunden) + " Sekunden" Range("B6").Select ActiveCell.FormulaR1C1 = TimeStr Application.OnTime Now + TimeValue("00:00:05"), "Countdown" End Sub

Antwort 1 von coros

Hallo Pelikan,

tausche nachfolgende Makros gegen Dein bestehendes aus.


Public NextTime As Variant

Sub Countdown()
'

NextTime = Now + TimeValue("00:00:05")
Ziel = DateValue("12.10.2007") + TimeValue("19:00:00")
Jetzt = Now()
Delta = Ziel - Now


Tage = Round(Delta - 0.5, 0)
Delta = (Delta - Tage) * 24

Stunden = Round(Delta - 0.5, 0)
Delta = (Delta - Stunden) * 60

Minuten = Round(Delta - 0.5, 0)
Delta = (Delta - Minuten) * 60

Sekunden = Round(Delta - 0.5, 0)

TimeStr = Str(Tage) + " Tage, " + Str(Stunden) + " Stunden, " + Str(Minuten) + " Minuten, " + Str(Sekunden) + " Sekunden"

Range("B6").Select
ActiveCell.FormulaR1C1 = TimeStr

Application.OnTime NextTime, "Countdown"
End Sub


Sub Stoppen()
Application.OnTime EarliestTime:=NextTime, Procedure:="Countdown", Schedule:=False
End Sub


Mit dem Makro "Stoppen" kannst Du das Makro "Countdown" beenden.

Damit das Makro "Countdown" beim Öffnen der Datei ausgeführt wird, musst Du in das VBA-Projekt "DieseArbeitsmappe noch folgendes hineinkopieren.

Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche

Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Stoppen
End Sub

Private Sub Workbook_Open()
Countdown
End Sub


Ich hoffe Du kommst klar.
Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 1 & 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.

Bei Fragen melde Dich.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von coros

Hallo,

ich nochmal,

da ist mir beim Schreiben ein kleiner Fehler unterlaufen, bzw. ich habe vergessen aus dem Text etwas zu löschen.

Also der Code

Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Stoppen
End Sub

Private Sub Workbook_Open()
Countdown
End Sub


gehört in das VBA-Projekt "DieseArbeitsmappe" und nicht wie im vorigen Beitrag geschrieben in ein StandardModul.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 3 von pelikan

Hallo coros,

SUPER Danke hat alles perfekt funktioniert,
nicht schlimm wegen deine Korrektur, hatte mir schon gedacht das es unter "diesearbeitsmappe" rein musste, habs da direkt eingebunden und es läuft wie gesagt perfekt.

Danke.

PS werde deine HP trotzdem besuchen und mir deine Beispiele anschauen, da kann man bestimmt noch was dazu lernen.

Danke
Pelikan

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: