Supportnet / Forum / Tabellenkalkulation
countdown im excel
Frage
Guten Morgen,
also ich wollte mir eine Datei basteln wo ich auch gern einen Countdown haben wollte. Also ich habe in Spalte A eine Uhrzeit stehen und wollte in Spalte B gern wissen wann 12 Stunden rum sind. Und das wäre eben super wenn da ein countdown runterlaufen würde. ist das denn möglich?? im excel oder is da ein anderes Programm besser geeignet??
Vielen Dank
Lars
Antwort 1 von CaroS
Hallo metalfreakla,
wenn in A1 Dein (zukünftiger) Zeitwert (ohne Datumsanteil) steht:
=HEUTE() + A1 - JETZT()
Formatiere diese Zelle auf "hh:mm:ss".
Allerdings müsstest Du dann ständig F9 (neu berechnen) drücken, damit die Anzeige auch wirklich runterzählt, da fällt mir im Moment nichts weiter ein als das Stichwort VBA.
Gruß,
CaroS
wenn in A1 Dein (zukünftiger) Zeitwert (ohne Datumsanteil) steht:
=HEUTE() + A1 - JETZT()
Formatiere diese Zelle auf "hh:mm:ss".
Allerdings müsstest Du dann ständig F9 (neu berechnen) drücken, damit die Anzeige auch wirklich runterzählt, da fällt mir im Moment nichts weiter ein als das Stichwort VBA.
Gruß,
CaroS
Antwort 2 von metalfreakla
wie würdest du es mit vba lösen??
Antwort 3 von metalfreakla
noch was anderes: ich brauche ein Feld wo er mir zu der eingegeben Uhrzeit automatisch 12 Stunden addiert.
Also in A1 geb ich die Uhrzeit ein z.B. 10:00 in B1 sollte dann automatisch 22:00 stehen und in C1 sollte stehen wie lange es noch bis 22:00 ist.
Danke schonmal!!
Also in A1 geb ich die Uhrzeit ein z.B. 10:00 in B1 sollte dann automatisch 22:00 stehen und in C1 sollte stehen wie lange es noch bis 22:00 ist.
Danke schonmal!!
Antwort 4 von CaroS
Hallo metalfreakla,
das einfachste immer zuerst. Schreibe in B1: = A1 + 0,5.
12 Stunden sind ein halber Tag. Eine erstaunliche Erkenntnis, wer hätte das gedacht? Funktioniert übrigens auch mit Zeiten nach 12 Uhr: 14:36:51 + 0,5 = 2:36:51. Du musst wahrscheinlich nur die Zellformatierung auf "hh:mm:ss" anpassen.
C1: =HEUTE() + B1 - JETZT() Formatiere C1 ebenfalls auf "hh:mm:ss". Ab 22:00:00 Uhr würde allerdings ein Fehler angezeigt werden, denn negative Zeiten gibt es nicht. Um das zu vermeiden, könntest Du in
C1: =WENN(HEUTE() + B1< JETZT(); ""; HEUTE() + B1 - JETZT()) schreiben.
Zu dem VBA-Code bin ich den ganzen Tag noch nicht gekommen, mein Unterbewusst- sein sagt mir nur, dass mir irgendsoeine Wait- oder Timer-Funktion/-Methode fehlt, mit der man einen Befehl gezielt alle 1000 Millisekunden ausführen kann, ohne deswegen immer gleich die gesamte Tabelle neu berechnen zu müssen. Das Makro müsste dann allerdings die ganze Zeit laufen, vom Öffnen der Datei bis zum Schließen. Von der Performance her gar kein Problem, es hat ja nur einmal in der Sekunden ganz kurz, also so gut wie nichts zu tun.
Leider muss ich Dich da erstmal bis Anfang nächster Woche vertrösten, aber vielleicht springt ja jemand anderes ein.
Schönes Wochenende!
CaroS
das einfachste immer zuerst. Schreibe in B1: = A1 + 0,5.
12 Stunden sind ein halber Tag. Eine erstaunliche Erkenntnis, wer hätte das gedacht? Funktioniert übrigens auch mit Zeiten nach 12 Uhr: 14:36:51 + 0,5 = 2:36:51. Du musst wahrscheinlich nur die Zellformatierung auf "hh:mm:ss" anpassen.
C1: =HEUTE() + B1 - JETZT() Formatiere C1 ebenfalls auf "hh:mm:ss". Ab 22:00:00 Uhr würde allerdings ein Fehler angezeigt werden, denn negative Zeiten gibt es nicht. Um das zu vermeiden, könntest Du in
C1: =WENN(HEUTE() + B1< JETZT(); ""; HEUTE() + B1 - JETZT()) schreiben.
Zu dem VBA-Code bin ich den ganzen Tag noch nicht gekommen, mein Unterbewusst- sein sagt mir nur, dass mir irgendsoeine Wait- oder Timer-Funktion/-Methode fehlt, mit der man einen Befehl gezielt alle 1000 Millisekunden ausführen kann, ohne deswegen immer gleich die gesamte Tabelle neu berechnen zu müssen. Das Makro müsste dann allerdings die ganze Zeit laufen, vom Öffnen der Datei bis zum Schließen. Von der Performance her gar kein Problem, es hat ja nur einmal in der Sekunden ganz kurz, also so gut wie nichts zu tun.
Leider muss ich Dich da erstmal bis Anfang nächster Woche vertrösten, aber vielleicht springt ja jemand anderes ein.
Schönes Wochenende!
CaroS
Antwort 5 von piano
Hallo
Hier ein Beispiel:
Subroutine "Beginn" aufrufen und los gehts. Die Arbeitsmappe muss natürlich offen bleiben!
Gruß piano
Es wäre nett, wenn Du ein Feedback abgeben könntest,
ob der Lösungsvorschlag Dein Problem gelöst hat.
- probieren geht über studieren -
Hier ein Beispiel:
Dim JetztZeit As Date
Dim AnfangsZeit As Date
Dim EndeZeit As Date
Sub Beginn()
Range("A2").Value = "Start"
Range("B2").Value = "Ende"
Range("C2").Value = "Noch Sek."
Range("D2").Value = "Jetzt"
AnfangsZeit = Now()
EndeZeit = AnfangsZeit + TimeValue("12:00:00")
Range("A1").Value = Format(AnfangsZeit, "hh:mm:ss")
Range("B1").Value = Format(EndeZeit, "hh:mm:ss")
StartCountDown
End Sub
Sub StartCountDown()
Application.OnTime Now() + TimeValue("00:00:01"), "CountDown"
End Sub
Sub CountDown()
Range("C1").Value = Format(EndeZeit - Now(), "hh:mm:ss")
Range("D1").Value = Format(Now(), "hh:mm:ss")
If Now() >= EndeZeit Then
MsgBox "Ziel erreicht", vbOKOnly
Exit Sub
End If
Call StartCountDown
End Sub
Subroutine "Beginn" aufrufen und los gehts. Die Arbeitsmappe muss natürlich offen bleiben!
Gruß piano
Es wäre nett, wenn Du ein Feedback abgeben könntest,
ob der Lösungsvorschlag Dein Problem gelöst hat.
- probieren geht über studieren -
Antwort 6 von CaroS
Hallo metalfreakla, ich fasse mal zusammen.
A1: ein Vormittagszeitwert (ohne Datumsanteil)
B1: = A1 + 0,5 // 12 Stunden später gegenüber A1, Ende des Countdowns
C1: =WENN(HEUTE() + B1 < JETZT(); ""; HEUTE() + B1 - JETZT())
Zeit bis B1 ohne automatisches Runterzählen, Neu berechnen erforderlich
D1: Anzeige des automatischen Countdowns durch Makro "Countdown"
Formatiere diese 4 Zellen im Format "hh:mm:ss".
Gib in A1 eine Vormittagszeit ein und starte das Makro "Countdown". Es müsste funktionieren und bis zur Zeit B1 laufen, wobei das Runterzählen in C1 nur dadurch funktioniert, dass das Makro jede Sekunde einen neuen Wert in D1 schreibt und dadurch die ganze Tabelle neu berechnet wird. (Sie sollte daher nicht allzu groß und kompliziert sein.)
Allerdings würde ein Countdown, der am Nachmittag (A1) mit einer Ende-Zeit am nächsten Tag (B1) gestartet wird, nie zum Ende kommen, weil er den Zeitwert in B1 (=1 Tag + angezeigte Uhrzeit) nie erreichen kann. Dieser Mangel müsste noch behoben werden, wenn das für Dich wichtig ist.
Gruß,
CaroS
A1: ein Vormittagszeitwert (ohne Datumsanteil)
B1: = A1 + 0,5 // 12 Stunden später gegenüber A1, Ende des Countdowns
C1: =WENN(HEUTE() + B1 < JETZT(); ""; HEUTE() + B1 - JETZT())
Zeit bis B1 ohne automatisches Runterzählen, Neu berechnen erforderlich
D1: Anzeige des automatischen Countdowns durch Makro "Countdown"
Formatiere diese 4 Zellen im Format "hh:mm:ss".
Sub Countdown()
Windows("Datei_Name.xls").Activate
Sheets("Tabelle1").Select
´ MsgBox Range("B1").Value - Time(), vbOKOnly, "CountDown-Beginn"
CountDownDisplay
End Sub
Sub CountDownDisplay()
If Time >= Range("B21").Value Then
Range("D1").Value = 0
´ MsgBox "00:00:00", vbOKOnly, "CountDown-Ende"
Exit Sub
End If
Range("D1").Value = Range("B1").Value - Time()
Application.OnTime Now() + TimeValue("00:00:01"), "CountDownDisplay"
End SubGib in A1 eine Vormittagszeit ein und starte das Makro "Countdown". Es müsste funktionieren und bis zur Zeit B1 laufen, wobei das Runterzählen in C1 nur dadurch funktioniert, dass das Makro jede Sekunde einen neuen Wert in D1 schreibt und dadurch die ganze Tabelle neu berechnet wird. (Sie sollte daher nicht allzu groß und kompliziert sein.)
Allerdings würde ein Countdown, der am Nachmittag (A1) mit einer Ende-Zeit am nächsten Tag (B1) gestartet wird, nie zum Ende kommen, weil er den Zeitwert in B1 (=1 Tag + angezeigte Uhrzeit) nie erreichen kann. Dieser Mangel müsste noch behoben werden, wenn das für Dich wichtig ist.
Gruß,
CaroS

