Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

ich möchte eine WENN-Funktion nur zu einem bestimmten Zeitpunkt ausführen.





Frage

Ich möchte eine WENN-Funktion nur zu einem bestimmten Zeitpunkt ausführen lassen. Zu allen anderen Zeitpunkten soll das alte Ergebnis beibehalten werden. Beispiel: Ich will das jede Stunde ( 0:00 Uhr, 1:00 Uhr, usw.) irgendetwas berechnet wird (bsp. A1+A2). Kann mir jemand hierfür eine Lösung nennen?

Antwort 1 von Event

Hallo erstmal...

Das ginge so:

=WENN(UND(SEKUNDE(JETZT())=0;MINUTE(JETZT())=0);A1+A2;"irgendetwas")

Diese Methode hat den entscheidenen Nachteil, das Excel nicht ständig Werte neuberechnet, und funktioniert deshalb nur dann, wenn in dieser 0-Minute eine Änderung im Tabellenblatt vorgenommen wird.
Nachfolgener Code, in ein Standardmodul kopiert, und über ALT+F8 ausführen gestartet, bewirkt das in Zelle A1 jede Sekunde die Uhrzeit eingetragen wird.

Option Explicit

Sub timer()
Range("A1").Value = Format(Now(), "hh:mm:ss")
Application.OnTime Earliesttime:=Now + TimeSerial(0, 0, 1), procedure:="timer"
End Sub


Dabei wird dann auch die oben zitierte Formel neu berechnet.

Gruß

Antwort 2 von WENN

Sorry aber die erste Antwort funktioniert nicht !

In der ersten Antwort wird das Ergebnis ständig überschrieben (durch Argument "irgendetwas").
Ich will aber das die Berechnung nur einmal je Stunde
(Argument A1+A2) gemacht wird.Danach darf das Ergebnis nicht mehr durch das Argument "irgendetwas" überschrieben werden.
Bsp.:
Um 12:00 Uhr soll A1+ A2 berechnet werden.
Wenn sich A1 um 12:01 Uhr verändert, darf keine Berechnung erneut gemacht werden. Es soll weiterhin das Ergebnis angezeigt werden wie es noch um 12:00 Uhr war. Erst um 13:00 Uhr soll wieder gerechnet werden und der neue Wert angezeigt werden.

Antwort 3 von Event

Hallo

Dann mach´s halt so:

Option Explicit

Sub timer()
Dim Gong As String
Range("C1").Value = Format(Now(), "hh:mm:ss")
Gong = CStr(Hour(Now()) + 1)
If Val(Gong) = 24 Then Gong = "00"
Debug.Print Gong
Application.OnTime TimeValue(Gong & ":00:00"), procedure:="timer"
Rem Deine Berechnung hier vornehmen
Range("C2").Value = Range("A1").Value + Range("A2").Value
End Sub


Gruß

Antwort 4 von WENN

Super es klappt, vielen Dank für die Lösung.

Eine weitere Frage hätte ich aber noch.
Wie müsste es denn aussehen wenn die Berechnung
jede Minute gemacht werden soll ?


Gruß