Thema Datum  Von Nutzer Rating
Antwort
23.10.2014 14:51:03 Tim
NotSolved
01.11.2014 16:08:07 Markus_K
NotSolved
Rot 2. mit 2 Timer
01.11.2014 16:16:47 Gast50903
NotSolved
03.11.2014 12:50:37 Gast28047
NotSolved
03.11.2014 22:33:54 Markus_K
NotSolved
04.11.2014 09:44:31 Gast80880
NotSolved
05.11.2014 13:16:47 Gast58829
NotSolved
06.11.2014 23:22:09 Markus_K
NotSolved
09.11.2014 23:33:44 Gast60594
NotSolved
10.11.2014 10:26:50 Gast27744
NotSolved
11.11.2014 19:45:28 MarkusK
NotSolved
20.11.2014 16:35:38 Gast71907
NotSolved
20.11.2014 18:02:37 MarkusK
NotSolved
27.11.2014 08:01:14 Gast52057
NotSolved
27.11.2014 22:13:25 MarkusK
NotSolved
11.12.2014 08:08:48 Gast44126
NotSolved
11.12.2014 11:03:56 Gast80638
NotSolved
11.12.2014 11:50:56 Gast8772
NotSolved
11.12.2014 15:47:49 Gast27017
NotSolved
12.12.2014 09:22:52 MarkusK
NotSolved
24.11.2014 05:59:10 Gast54953
NotSolved

Ansicht des Beitrags:
Von:
Gast50903
Datum:
01.11.2014 16:16:47
Views:
920
Rating: Antwort:
  Ja
Thema:
2. mit 2 Timer

Hallo Tim,

 

hier die 2. Lösung.

Hierbei werden, je nachdem wie lange noch bis zur Alarm-Zeit ist, bis zu 2 Timer gestartet.

1. Timer startet (einmal)  z.B. 1 Stunde vorher und veranlasst das einfärben der Zelle in z.B. Gelb

2. Timer wird dann (einmal) aufgerufen wenn die Alarm-Zeit erreicht ist. Hier wird dann ein 3. Timer gestartet, der für das Blinken zuständig ist.

Das schöne an der Methode ist, es wird, vor der Alarm-Zeit, nicht ständig irgendein Code ausgeführt.

 

Auch hier gelten die Vorraussetzungen wie bei der 1. Methode

Es muss eine Checkbox (Name CheckBox1) auf dem 1. Blatt vorhanden sein.

Derzeit wird die Zelle B4 abgefragt, kann man aber im "Start" Makro ändern

 

In VBA unter "DieseArbeismappe" folgenden Code einfügen

Option Explicit

Private Sub Workbook_Open()
If Sheets(1).CheckBox1.Value Then
    Start
    faerben
    TimerSetzen
End If
End Sub

In das Code-Fenster des 1. Blattes

Option Explicit

Private Sub CheckBox1_Click()
    Start
    faerben
    TimerSetzen
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Alarm) Is Nothing Then
    Me.CheckBox1.Value = 1
    
End If
End Sub

Und in ein Modul dann

Option Explicit
Public WarnFarbe As Long
Public AlarmFarbe As Long
Public WarnZeit As Long ' in Sek
Public Alarm As Range
Public Sub Timer1()
If Sheets(1).CheckBox1.Value Then faerben
End Sub
Public Sub Timer2()

If Sheets(1).CheckBox1.Value Then
    faerben
    Application.OnTime Now + TimeSerial(0, 0, 1), "Timer3"
End If
End Sub

Public Sub Timer3()
If Sheets(1).CheckBox1.Value Then
    faerben
    Application.OnTime Now + TimeSerial(0, 0, 1), "Timer3"
End If
End Sub


Public Sub Start()
WarnFarbe = RGB(256, 256, 0)
AlarmFarbe = RGB(256, 0, 0)
WarnZeit = 10
Set Alarm = Sheets(1).Range("B4")
End Sub

Public Sub faerben()
    If DateDiff("s", Time, Alarm) <= WarnZeit And DateDiff("s", Time, Alarm) > 0 Then
        Alarm.Interior.Color = WarnFarbe
    ElseIf DateDiff("s", Time, Alarm) < 0 Then
        If Alarm.Interior.Color = AlarmFarbe Then
            Alarm.Interior.Pattern = xlNone
        Else
            Alarm.Interior.Color = AlarmFarbe
        End If
    Else
        Alarm.Interior.Pattern = xlNone
    
    End If

End Sub

Public Sub TimerSetzen()
    If DateDiff("s", Time, Alarm) > WarnZeit Then
        Application.OnTime DateAdd("s", -WarnZeit, Alarm), "Timer1"
    End If
    If DateDiff("s", Time, Alarm) > 0 Then
        Application.OnTime Alarm, "Timer2"
    Else
        Application.OnTime Now + TimeSerial(0, 0, 1), "Timer3"
        
    End If

End Sub

Gruß Markus


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
23.10.2014 14:51:03 Tim
NotSolved
01.11.2014 16:08:07 Markus_K
NotSolved
Rot 2. mit 2 Timer
01.11.2014 16:16:47 Gast50903
NotSolved
03.11.2014 12:50:37 Gast28047
NotSolved
03.11.2014 22:33:54 Markus_K
NotSolved
04.11.2014 09:44:31 Gast80880
NotSolved
05.11.2014 13:16:47 Gast58829
NotSolved
06.11.2014 23:22:09 Markus_K
NotSolved
09.11.2014 23:33:44 Gast60594
NotSolved
10.11.2014 10:26:50 Gast27744
NotSolved
11.11.2014 19:45:28 MarkusK
NotSolved
20.11.2014 16:35:38 Gast71907
NotSolved
20.11.2014 18:02:37 MarkusK
NotSolved
27.11.2014 08:01:14 Gast52057
NotSolved
27.11.2014 22:13:25 MarkusK
NotSolved
11.12.2014 08:08:48 Gast44126
NotSolved
11.12.2014 11:03:56 Gast80638
NotSolved
11.12.2014 11:50:56 Gast8772
NotSolved
11.12.2014 15:47:49 Gast27017
NotSolved
12.12.2014 09:22:52 MarkusK
NotSolved
24.11.2014 05:59:10 Gast54953
NotSolved