Problème timer dans Label

Bonjour, j'avais un code qui fonctionnais très bien sur une feuille excel avec "range("A1") mais quand j'essaie de l'adapter à un label j'ai une erreur . Merci

code sur FEUILLE

Dim ok As Boolean
Sub Demarrechrono()

ok = True
Range("A1") = TimeSerial(0, 0, 6)
Call decompte
End Sub

Sub decompte()
If TimeValue("00:00:00") Then
Exit Sub
Else
If ok Then
    If Range("A1") = 0 Then
        ok = False
        Range("A1") = TimeSerial(0, 0, 0): End
    End If
    Range("A1") = Range("A1") - TimeSerial(0, 0, 1)
    Range("A1").NumberFormat = "ss"
    Application.OnTime Now + TimeValue("00:00:01"), "decompte"

End If
End If
End Sub

code sur LABEL:

Dim ok As Boolean
Sub Demarrechrono()

ok = True
UserForm1.Label13.Caption = TimeSerial(0, 0, 6)
Call decompte
End Sub

Sub decompte()

If ok Then
    If UserForm1.Label13.Caption = 0 Then
        ok = False
        UserForm1.Label13.Caption = TimeSerial(0, 0, 0): End
    End If
    UserForm1.Label13.Caption = UserForm1.Label13.Caption - TimeSerial(0, 0, 1)
    UserForm1.Label13.Caption = "ss"
    Application.OnTime Now + TimeValue("00:00:01"), "decompte"

End If

End Sub
label

Bonjour,

pas de message d'erreur ?

Bonjour pierre.jy

Non le code s'arrete est j'ai cette ligne en jaune

? sans message ...

je comprends pas l'utilité du code

: end 

Y à pas de message mais le code bloque

Le :end sert à bloquer le timer à 0

Benoist28200 a écrit :

Y à pas de message mais le code bloque

Le :end sert à bloquer le timer à 0

????

le end ..est as utiliser avec parcimonie , pour ma part j'en n'ai jamais eu l'utilité , et dans ton cas il est peut être la cause de ton problème..... remplace le par exit sub qui est qand même plus propre..

bonsoir

Lorsqu'elle est exécutée, l'instruction End réinitialise toutes les variables au niveau du module et toutes les variables locales statiques dans tous les modules. L'instruction End met immédiatement fin à l'exécution du code, sans appeler d'événement Unload, QueryUnload, ou Terminate, ou tout autre code Visual Basic. Le code que vous avez écrit dans les L'instruction End permet de forcer l'arrêt du programme.

Alors vous devez savoir pour quoi vous l’avez met

 If UserForm1.Label1.Caption = 0 Then

Par cette instruction, le label a comme type text et le 0 est de type numérique ( text = numerique ) ==> ce qui génère l’erreur de l incompatibilité

= UserForm1.Label1.Caption - TimeSerial(0, 0, 1)

c est une opération mathématique mais (text – numerique ) ==> ce qui génère l’erreur de l incompatibilité

ok, merci pour l'info, donc se comme n'est pas du tout recommandé. Dans se cas commentfaire pour:

1: Mettre un compte à rebour de 5 seconde dans le Label 13.

2: Si Label 13 = 4 sec alors le backcolor Label14 = vert

Si Label 13 = 3 sec alors le backcolor Label15 = vert

Si Label 13 = 2 sec alors le backcolor Label16 = vert

Si Label 13 = 1 sec alors le backcolor Label17 = vert

Si Label 13 = 0 sec alors le backcolor Label18 = vert

3: Si Label 13= 4 alors Label16 = "20%"

Si Label 13= 3 alors Label16 = "40%"

Si Label 13= 2 alors Label16 = "60%"

Si Label 13= 1 alors Label16 = "80%"

Si Label 13= 4 alors Label16 = "100%"

4: Quand Label 16 = "100%"

Sélection de la feuille "ACCEUIL"

Merci

bonjour

essai fait rapidement:

33timer.xlsm (205.10 Ko)

Ça fonctionne parfaitement

Un grand merci à vous AMIR pour l'aide et le temps que vous m'avez consacré.

Rechercher des sujets similaires à "probleme timer label"