Faire clignoter un mot dans un Label et

Résolu
Dudulleray -  
 dudulleray -
Bonsoir a toutes et tous, forum



Voila je souhaiterai svp faire deux petites Sub pour faire clignoter (pas trop vite) un mot dans un Label et dans un CommandBoutton.

PS: le mot "Sélection" pour le Label45 et "Valider" pour le commandbutton5

Merci a vous et de votre temps

Bon W-end a vous

Cdlt Ray

10 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    code a mettre dans un module

    vous pouvez utilisez ces deux vaiables pour arreter les clignotants
    Public Arret_timer1 As Boolean
    Public Arret_timer2 As Boolean

    'le mot "Sélection" pour le Label45 et "Valider" pour le commandbutton5
    Sub Clignotant1()
    If Arret_timer1 Then Exit Sub
    If UserForm1.Label45.Caption = "" Then
    UserForm1.Label45.Caption = "Sélection"
    Else
    UserForm1.Label45.Caption = ""
    End If
    Application.OnTime Now + TimeValue("00:00:02"), "Clignotant1"
    End Sub

    Sub Clignotant2()
    If Arret_timer2 Then Exit Sub

    If UserForm1.CommandButton5.Caption = "" Then
    UserForm1.CommandButton5.Caption = "Valider"
    Else
    UserForm1.CommandButton5.Caption = ""
    End If
    Application.OnTime Now + TimeValue("00:00:02"), "Clignotant2"
    End Sub

    Bonne suite
    0
    1. dudulleray
       
      Bonsoir f894009,

      Merci une nouvelle fois pour ton aide, ca fonctionne bien

      et je souhaiterai svp une Sub pour arreter chaque clignotement que je
      pourrai appeller quand besoin de stopper le clignotement de l'un ou de l'autre

      ou que ca s'arrète tout seul au bout de X secondes; j'adapterai selon mon besoin

      Merci beaucoup pour le coup de main, c'est sympa

      Bonne soirée

      Ray
      0
    2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,

      Il suffit de mettre Arret_timer1 ou/et Arret_timer2 a true dans deux sub separes et de les repasser a false pour pour relancer les clignotants
      0
    3. dudulleray
       
      Bonjour f894009,

      Merci pour ta réponse ca fonctionne très bien, et deux questions si tu veux bien.

      (1) Comment faire svp pour qu'un clignotement s'arrète tout seul au bout de 10 secondes par exemple.

      (2) Si je veux que ca clignote plus vite disons pour Exemple 3 fois par secondes.

      Merci a toi et Dimanche de pâques

      Cdlt Ray
      0
    4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Bonjour,
      Avec Application.OnTime------->Une fois par seconde maximum, si vous voulez trois fois par seconde c'est une autre programmation. Il faut faire attention car cela "penalise" le fonctionnement global de l'application.

      Pour arreter au bout de x secondes, soit vous faire un compteur qui s'incremente a chaque passage dans le sub clignotant et des que le compte est bon vous passez Arret_timerx a true

      Bonne suite
      0
    5. dudulleray
       
      Re salut f894009
      Merci pour ta réponse j'ai fait des essais chercher exemple un code mais pas trouver et pas réussi a faire ce que je voulais.

      et tu a raison car le clignotement pénalise l'application, c'est mème chiant quand on rempli un formulaire ou quand on modifie .et que le clignotement est toutjours actif, il faudrai que je trouve autre chose

      c'est pas grave, je chercherai un modèle cette après midi

      Bon Dimanche a toi encore merci pour ton aide, bon app

      Ray
      0
  2. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Un peu plus tôt ! :D
    Un exemple à adapter
    A+
    Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
    NOTE : Je ne répond pas aux MP pour les questions techniques.
    0
  3. dudulleray
     
    Bonjour lermite222

    Merci pour ton fichier je regarde de plus prèt

    Bon Lundi de Pâques

    Cdlt Ray
    0
  4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,
    Vous pouvez utiliser ce que lermite vous a propose. Ce sera plus simple pour vous. Ce que je voulais vous proposer est plus complique, utilisation des API de windows.

    Bonjour lermite, joyeuses Paques
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dudulleray
     
    Bonjour f894009,

    Merci pour la réponse

    j'ai regarder le fichier de l'ami lermite222, et j'ai fait quelques essais je voulais essayer de modifier mais ca marche pas

    je ne souhaite pas que ca démarre ni s'arrete par un click sur un bouton
    mais par un Appel par Sub pour Arret ou Marche et je n'ai réussi a le faire.

    Merci Bon Lundi de Pâques également

    Cdlt Ray
    0
  7. dudulleray
     
    Re f894009

    Voila je ne sais pas si c'est bien coder, mais ca marche suite au soucis d'hier que je n'arrivai pas a voir ci-dessous

    '*****************
    Dans les sub arret..., il faut mettre les noms que vous voulez voir affiches

    Il faut relancer les sub Clignotant1 et 2 pour que cela clignote de nouveau (ne pas oublier de remettre les Arret_Timer a false)
    '*****************

    Donc la ca fonctionne, MAIS j'aurai bien voulu faire clignoter plus vite, je n'ai pas réussi a adapter le code de lermitte avec le tien

    Dommage snif snif si tu peux faire svp je suis preneur, bien sur LOL

    A plus tard et bien de merci

    Raymond

    Public Arret_Timer1, Arret_Timer2 As Boolean
    
    Sub ClignoteSélection()
       If Arret_Timer1 Then Exit Sub
       If UserForm1.Frame4.Label45.Caption = "" Then
       UserForm1.Frame4.Label45.Caption = "Sélection cellule"
    Else
       UserForm1.Frame4.Label45.Caption = ""
    End If
       Application.OnTime Now + TimeValue("00:00:01"), "ClignoteSélection"
    End Sub
    
    Sub StopSélection()
       Arret_Timer1 = True
    UserForm1.Frame4.Label45.Caption = "Sélection cellule"
    Application.OnTime Now + TimeValue("0:0:01"), "ClignoteSélection"
    Arret_Timer1 = False
    End Sub
    
    '*********************
    Sub ClignoteAutomatique()
       If Arret_Timer2 Then Exit Sub
       If UserForm1.Frame4.CmBValider.Caption = "" Then
       UserForm1.Frame4.CmBValider.Caption = "AUTOMATIQUE"
    Else
       UserForm1.Frame4.CmBValider.Caption = ""
    End If
       Application.OnTime Now + TimeValue("00:00:01"), "ClignoteAutomatique"
    End Sub
    
    Sub StopAutomatique()
       Arret_Timer2 = True
    UserForm1.Frame4.CmBValider.Caption = "AUTOMATIQUE"
    Application.OnTime Now + TimeValue("0:0:01"), "ClignoteAutomatique"
    Arret_Timer2 = False
    End Sub
    
    0
  8. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour et bonne Pâques à vous aussi.
    Dans l'exemple que j'ai posté...
    Pas besoin de bouton pour faire fonctionner.
    N'importe où dans le code..
    'Ces 2 lignes font démarer le clignotement du label 
        ClignotLabel = True 
        TimerLab 
    'Cette ligne l'arrète 
        ClignotLabel = False 
    'Ces 2 lignes font démarer le clignotement du bouton 
        ClignotBout = True 
        TimerLab 
    'Cette ligne l'arrète 
        ClignotBout = False

    et c'est là qu'est décider la fréquence...
                Memt = Timer + 1 'Une seconde

    Tu peu adapter avec des décimales, par exemple +1.5 ferra une seconde et demi
    A+
    Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
    NOTE : Je ne répond pas aux MP pour les questions techniques.
    0
  9. dudulleray
     
    Salut lermite222,

    Merci pour tes infos, j'ai imprimer, j'ai bien compris comment marche ton fichier

    Mais je n'arrive pas a créer des Subs pour lancer ou arreter le ou les clignotements

    si je change de place mis dans un module déplacer feuil bref plein d'essais avec ton

    fichier mais il y a toujours une erreur qui pointe son nez.

    je n'arrive pas a faire comme souhaiter

    Merci de ton aide quand mème, je vais réessayer tout a l'heure

    A plus tard merci

    Ray
    0
  10. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour a vous deux

    Code de lermite adapte a votre besoin

    Option Explicit
    Dim Arret_Timer1 As Boolean
    Dim Arret_Timer2 As Boolean

    Private Sub UserForm_Terminate()
    Arret_Timer1 = False
    Arret_Timer2 = False
    End Sub

    '======================
    '
    Sub StopSélection()
    Arret_Timer1 = False
    userform1.Label45.Caption = "Sélection cellule"
    End Sub

    Sub StopAutomatique()
    userform1.CmBValider.Caption = "AUTOMATIQUE"
    Arret_Timer2 = False
    End Sub
    '======================

    'Bouton
    'Arret/demarre clignotantLabel:"Sélection cellule"
    Private Sub CommandButton1_Click()
    Arret_Timer1 = Not Arret_Timer1
    'Lance routine clignotant Label
    If Arret_Timer1 Then
    TimerLab_Bout
    Else
    userform1.Label45.Caption = "Sélection cellule"
    End If
    End Sub

    'Bouton
    'Arret/demarre clignotant Bouton:"AUTOMATIQUE"
    Private Sub CommandButton3_Click()
    Arret_Timer2 = Not Arret_Timer2
    'Lance routine clignotant Bouton
    If Arret_Timer2 Then
    TimerLab_Bout
    Else
    userform1.CmBValider.Caption = "AUTOMATIQUE"
    End If
    End Sub

    'Clignotant pour Label et Bouton
    Sub TimerLab_Bout()
    Static Memt As Double
    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
    Loop
    End Sub
    0
  11. dudulleray
     
    Bonsoir f894009

    Merci pour le code j'ai bidouilller un peu et puis j'ai fini d'adapter le code a mon programme.

    Cette fois tout est bon, tout fonctionne bien

    je te remercie beaucoup pour ton aide

    ainsi que l'ami lermite222 pour le code fourni

    Encore pleins de merci a vous deux

    Cordialement Raymond
    0