Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Digitaluhr





Frage

Hallo, ich möchte in VBA für Excel in einer FrmEingabemaske eine Digitale Uhr erzeugen. Kann mir jemand sagen wie der Code dafür aussieht? Scotty

Antwort 1 von salzundpfeffer

Hallo Scotty

Probiers mal so:

Erzeuge ein Modul und dann nichts wie los hereinkopiert:

Private c As Boolean

Sub ZeitFestLegen1()
c = True
Zeitangabe = Time + TimeSerial(0, 0, 1)
Application.OnTime Zeitangabe, "eintragen1"

End Sub

Sub eintragen1()
'Mappenname und gewünschte Zelle nun eingeben
Sheets("Tabelle1").Cells(1, 1).Value = Time
If c = True Then ZeitFestLegen1
End Sub

Sub notstopp()
c = False
End Sub


Antwort 2 von Scotty

Hallo salzundpfeffer

danke für Deine Antwort, aber so funktioniert das nicht da ich die Digitaluhr in eine Userform bringen möchte.

Cu. Scotty

Antwort 3 von coros

Hi Scotty,

ich hätte da zwei Code, die sollten das können, was Du Dir vorstellst. Kopiere die beiden Code in jeweils eine UserForm.

Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Dim Stopped     As Integer
    
Private Sub CommandButton1_Click()
        Stopped = 1
        Unload UserForm1
End Sub

Private Sub UserForm_Initialize()
    Stopped = 1
End Sub
    
Private Sub UserForm_Layout()
    Call Scroll_Text
End Sub
    
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    Stopped = 1
End Sub
    
Private Sub Scroll_Text()
    Stopped = 0
    Do
         Label1 = Time
        Call Pause(100, 1)  'Tempo des Wechsel
    Loop Until Stopped = 1
End Sub
    
Private Sub Pause(ByVal Pau As Single, ByVal DoEv As Integer)
    Call Sleep(Pau)
    If DoEv = 1 Then DoEvents
End Sub


Eventuell musst Du noch den Namen des Bezeichnungsfeldes (Label1) ändern. Bei diesem Code wird die Zeit in einem Bezeichnungsfeld angezeigt. Über den CommandButton1 wird die Zeit wieder angehalten und die UserForm beendet.

Bei dem zweiten Code wird in der Titelleiste der UserForm die Zeit eingeblendet. Nachfolgenden Code ebenfalls wieder in die UserForm kopieren.

Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Dim Stopped     As Integer
    
Private Sub CommandButton1_Click()
Stopped = 1
        Unload UserForm2
End Sub

Private Sub UserForm_Initialize()
    Stopped = 1
End Sub
    
Private Sub UserForm_Layout()
    Call Scroll_Text
End Sub
    
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    Stopped = 1
End Sub
    
Private Sub Scroll_Text()
    Stopped = 0
    Do
        Me.Caption = Time
        Call Pause(100, 1)  'Tempo des Wechsel
    Loop Until Stopped = 1
End Sub
    
Private Sub Pause(ByVal Pau As Single, ByVal DoEv As Integer)
    Call Sleep(Pau)
    If DoEv = 1 Then DoEvents
End Sub


Ich hoffe, Du kommst mit den Anweisungen klar, wenn nicht, dann melde Dich noch mal.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

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


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: