Faire clignoter un mot dans un Label et

Résolu/Fermé
Dudulleray - 7 avril 2012 à 18:36
 dudulleray - 10 avril 2012 à 17:16
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

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
7 avril 2012 à 18:59
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
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
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
7 avril 2012 à 19:53
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
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
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
8 avril 2012 à 09:39
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
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
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 8/04/2012 à 19:43
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
Bonjour lermite222

Merci pour ton fichier je regarde de plus prèt

Bon Lundi de Pâques

Cdlt Ray
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
9 avril 2012 à 09:20
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
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
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 9/04/2012 à 12:27
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
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
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
10 avril 2012 à 16:09
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
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