Problème VBA EXCEL : Label clignotant

Résolu
Bonjour,

je suis débutant en VBA excel, j'ai créé un label non visible sur mon USERFORM qui se déclenche en alerte lorsque je dépasse quelques conditions. je voulais par conséquent le rendre clignotant lorsqu'il devient visible . comme dois-je procéder SVP?

Merci pour votre réponse.

6 réponses

  1. Bonjour,

    Merci pour votre réponse. le problème c'est que je suis débutant en VBA et j'ai pas pu adapter le code sur mon problème. voici mon code :

    For Each TheRow In Feuil9.ListObjects("Tab_Taux").ListRows
    
        'On recherche la ligne qui correspond à critère Montant et Nbr de jour
       If TextBox3 <> "" And TextBox7 <> "" And TextBox11 <> "" And ComboBox1 <> "" Then
        
        If (CDbl(TextBox7.Text) >= TheRow.Range(1, 1).Value) And (CDbl(TextBox7.Text) <= TheRow.Range(1, 2).Value) And (CDbl(TextBox3.Text) >= TheRow.Range(1, 3).Value) And (CDbl(TextBox3.Text) <= TheRow.Range(1, 4).Value) Then
            'On controle le taux
            If CDbl(TextBox11.Text) > TheRow.Range(1, 5).Value And CheckBox1.Value = False Then
                TextBox11.Value = ""
                MsgBox " (1ère Consultation)  Dépassement du Taux Maximal :  " & TheRow.Range(1, 5).Value & " % "
                CheckBox1.Visible = True
                'On quitte la boucle
                Exit For
            End If
        End If
    
     End If
    Next


    - je veux que lorsque le checkbox1 devient visible son label commence à clignoter.

    Merci.
    0
    1. Modérateur
      Bonjour,

      @f894009 : Juste une petite mise en garde sur l'utilisation de DoEvents en boucle.
      A la suite d'une remarque d'UcFoutu (que tu as croisé sur le site CCM/CodeS SourceS), j'ai réalisé, avec lui, une petite étude sur l'utilisation de DoEvents. Tu la trouvera ici : https://codes-sources.commentcamarche.net/faq/11087-vba-doevents-problemes-et-solutions

      Juste pour te montrer, par l'intermédiaire de ton code, la portée de ce machin, teste ce code :
      Il s'agit de ton code de clignotement de label auquel j'ai ajouté un compteur de DoEvents. Laisse le fonctionner 3-4 secondes, tu seras surpris du résultat.
      'Clignotant pour Label et Bouton
      Sub TimerLab_Bout()
      Static Memt As Double, Cpt As Long
          Do While Arret_Timer1 Or Arret_Timer2   'Clignotant Label ou Clignotant Bouton Ok
              If Memt < Timer Then
                  If Arret_Timer1 Then
                    If userform1.Label45.Caption = "" Then
                      userform1.Label45.Caption = "Sélection cellule"
                    Else
                      userform1.Label45.Caption = ""
                    End If
                  End If
                  If Arret_Timer2 Then
                    If userform1.CmBValider.Caption = "" Then
                      userform1.CmBValider.Caption = "AUTOMATIQUE"
                    Else
                      userform1.CmBValider.Caption = ""
                    End If
                  End If
                  Memt = Timer + 0.333 'Interval temps: 1/3 de seconde
              End If
              DoEvents: Cpt = Cpt + 1
          Loop
          MsgBox Cpt
      End Sub


      Il vaut mieux, d'autant plus que tu maîtrises VB, utiliser un véritable Timer comme indiqué dans le tutoriel.

      Sur ce, bonne continuation.
      @+
      0
      1. Bonjour,

        merci

        suis au courant pour Doevents, mais c'est le premier exemple que j'ai trouve dans mon fourbis

        Connais bien ontime, y a meme des timer system avec les API qui ont l'avantage de compter ou decompter (suivant du cote on se place) plus "juste" que ontime et ne sont pas trop perturbes par la charge CPU
        0
      2. Modérateur
        @f894009De rien.

        c'est le premier exemple que j'ai trouve dans mon fourbis
        D'où mon intervention pour compléter ta réponse. Fort juste par ailleurs et qui peut se suffire à elle-même, bien entendu.

        y a même des timer system avec les API
        Oui... Je me doutais bien que tu connaissais.
        0
    2. Merciii beaucoup pour votre aide ;)
      0