Supportnet Computer
Planet of Tech

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

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!!

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

Antwort 5 von piano

Hallo
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".

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 Sub


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

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


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: