Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
656to660
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
656to660
656to660
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Statusleiste - Uhrzeit

Statusleiste - Uhrzeit
25.08.2005 17:04:34
Michael
Hallo zusammen,
man kann ja per Makro die aktuelle Uhrzeit in der Statusleiste anzeigen lassen, die läuft dann auch normal weiter und man kann weiter Arbeiten.
Jetzt die Frage, geht das auch anders rum?
Also das man eine vordefinierte Uhrzeit eingibt ind in der Statusleiste dann die uhr von dieser uhrzeit an rückwärts läuft?
Habs schon mit nem Counter versucht, aber dann kann ich in der Mappe nicht weiterarbeiten und so wirklich gefunzt hat es auch net.
Hat irgendeiner ne Idee für nen Code?
Danke schonmal
Grüße

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Statusleiste - Uhrzeit
25.08.2005 19:20:07
Erich
Hallo Michael,
frei nach https://www.herber.de/mailing/067199h.htm
Public Const gsMacro As String = "UpdateClock"
Public gdNextTime As Double
Public gdEndTime As Double
Sub SetEndTime()
gdEndTime = Time + 1 / 48 (in einer halben Stunde)
End Sub
Sub StartClock()
gdNextTime = Now + TimeSerial(0, 0, 1)
Application.OnTime earliesttime:=gdNextTime, procedure:=gsMacro, schedule:=True
End Sub
Sub UpdateClock()
Application.DisplayStatusBar = True
Worksheets("Tabelle1").Range("A1").Calculate
Application.StatusBar = "verbleibende Zeit: " _
& Format(gdEndTime - Time, "hh:mm:ss")
Call StartClock
End Sub
Sub StopClock()
On Error Resume Next
Application.OnTime earliesttime:=gdNextTime, procedure:=gsMacro, schedule:=False
Application.StatusBar = False
End Sub
'in Klassenmodul DieseArbeitsmappe - vorsichtshalber

Private Sub Workbook_beforeClose(Cancel As Boolean)
Call StopClock
End Sub

(Beendet wird das Ganze noch nicht automatisch, wenn die Endezeit erreicht ist - kannst du noch machen.)
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Statusleiste - Uhrzeit
25.08.2005 21:00:32
Michael
Hallo Erich
die Zeile gdEndTime = Time + 1 / 48 (in einer halben Stunde) verursacht einen Syntaxfehler.
Hab die Zeile in gdEndTime = Time + 1 + 48 geändert, aber dann zählt die Uhr von 00 Uhr an rückwärts.
Ich muss noch irgendwas da reinbasteln, das die ab einer bestimmten Uhrzeit rückwärts zählt.
Bzw. soll es so sein, das die aktuelle Zeit ermittelt wird (Now oder Time) und dann die differenz zur vorher bestimmten Uhrzeit ausgerechnet wird, und diese Differenz dann runtergezählt wird.
Ich häng da schon den ganzen Tag dran (was tut man nicht für hübsche Kolleginnen) habs wie gesagt schon mit nem counter versucht und hab versucht eine Uhrzeit zu definieren, aber irgendwie funzt das bei mir garnet.
Trotzdem Vielen Dank.
Bin froh über jeden Vorschlag den Du noch hast.
Grüße ausm Westerwald
Anzeige
AW: Statusleiste - Uhrzeit
25.08.2005 21:17:34
Erich
Hallo Michael,
den Bemerkung "(in einer halben Stunde)" hatte ich nachträglich (im Browser, nicht in VBA) dazugeschrieben - und davor das Hochkomma vergessen.
Wenn du nur schreibst
gdEndTime = Time + 1 / 48
hst du genau das, was du beschreibst mit "Bzw. soll es so sein, das die aktuelle Zeit ermittelt wird (Now oder Time) und dann die differenz zur vorher bestimmten Uhrzeit ausgerechnet wird, und diese Differenz dann runtergezählt wird."
In meinem Beispiel ist das eine halbe Stunde, die ab dem Makrostart rückwärts gezählt wird. (1 ist ein Tag, 1/24 eine Stunde)
Bei deiner Änderung (Time + 1 + 48) wird ab jetzt in 49 Tagen zurückgezählt.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Statusleiste - Uhrzeit
25.08.2005 21:36:37
Michael
Hallo Erich,
jo, das funktioniert. allerdings ist es noch nicht 100 Pro was meine Kollegin will.
Also, Sie will morgens Ihr Excel aufmachen, dann soll in der Statuszeile die Zeit rückwärtslaufen, bis sie Feierabend hat (frag mich nicht warum).
Sagen wir mal, sie fängt um 08:00 an und hört um 17:00 auf, dann sollten in der Statuszeile neun Stunden rückwärts laufen.
Wäre ja eigentlich kein Problem, aber sie fängt ja nicht immer um acht an, deswegen die Differenzermittlung und dann nur den Rest runterzählen.
Habs schon mit ner Userform und Inputbox usw. probiert, funzt net.
Sie will ja auch net jeden Morgen die Uhrzeit neu eingeben, die Arbeitszeit geht generell bis 17:00 Uhr, das ist die einzige feste in der Formel.
Ich weis das es geht, ich weis nur net wie.
Aber Dein Zähler funzt!
Ne Idee ?
Grüße
Anzeige
AW: Statusleiste - Uhrzeit
25.08.2005 22:26:04
Erich
Hallo Michael,
für deine Kollegin tun wir doch Alles - wir versuchens wenigstens...
'in Standardmodul
Public Const gsMacro As String = "UpdateClock"
Public gdNextTime As Double
Public gdEndTime As Double
Sub StartClock()
gdEndTime = TimeSerial(17, 0, 0) ' Festes Ende: 17 Uhr
gdNextTime = Time + TimeSerial(0, 0, 1)
Application.OnTime earliesttime:=gdNextTime, procedure:=gsMacro, schedule:=True
End Sub
Sub UpdateClock()
Application.DisplayStatusBar = True
Worksheets("Tabelle1").Range("A1").Calculate
If Time >= gdEndTime Then
Application.StatusBar = "Feierabend!!!"
Application.Wait TimeSerial(Hour(Time), Minute(Time), Second(Time) + 5)
Call StopClock
Else
Application.StatusBar = "verbleibende Zeit: " _
& Format(gdEndTime - Time, "hh:mm:ss")
Call StartClock
End If
End Sub
Sub StopClock()
On Error Resume Next
Application.OnTime earliesttime:=gdNextTime, procedure:=gsMacro, schedule:=False
Application.StatusBar = False
End Sub
'in Klassenmodul DieseArbeitsmappe

Private Sub Workbook_Open()
Call StartClock
End Sub


Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call StopClock
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Statusleiste - Uhrzeit
25.08.2005 22:37:05
Matthias
Hallo Michael,
jetzt hat Erich schon, aber ich will meins jetzt auch loswerden:
in DieseArbeitsmappe:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
StopTimer
Application.StatusBar = False
End Sub
Private Sub Workbook_Open()
Me.IsAddin = True 'macht Tabellenblätter unsichtbar
StartTimer
End Sub

In ein normales Modul:

Option Explicit
Public NextTime As Date
'führt Prozedur "UpdateStatus" aus und gibt Excel Startzeit für die nächste Ausführung an:
Sub StartTimer()
NextTime = Now + TimeValue("00:01:00") 'jede Minute
UpdateStatus
If Time <= TimeValue("17:00") Then
Application.OnTime NextTime, "StartTimer"
End If
End Sub
'Löscht die OnTime-Anweisung wieder
Sub StopTimer()
On Error Resume Next
Application.OnTime earliesttime:=NextTime, Procedure:="StartTimer", Schedule:=False
On Error GoTo 0
End Sub
Sub UpdateStatus()
If Time > TimeValue("17:00") Then
Application.StatusBar = "Endlich Feierabend!"
MsgBox "Feierabend!"
Application.StatusBar = False
Else
Application.StatusBar = Format(TimeValue("17:01") - Time(), """noch"" h ""Stunden"" m ""Minuten"" s")
End If
End Sub

Gruß Matthias
Anzeige
AW: Statusleiste - Uhrzeit
25.08.2005 22:53:38
Michael
Hallo Ihr beiden,
Vielen Dank für Eure Bemühungen, klappt beides tadellos !!!
(hab zu testzwecken die Endzeit geändert)
Ich werde Euch beide bei der morgigen Übergabe natürlich lobenswert in den Vordergrund stellen.
Aber ich muss sagen, das ich mit meinen Ideen garnet so weit entfernt war, naja, üb halt noch etwas.
Also, vielen Dank nochmal !!
Bis denn mal
Grüße ausm Westerwald (übrigens saukaaaalt heut)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige