ticrain
Messages postés178Date d'inscriptionjeudi 15 mars 2007StatutMembreDernière intervention 2 janvier 2015
-
24 avril 2008 à 17:05
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
26 avril 2008 à 22:45
Bonjour les ptis loups
J'ai été viré ce matin c'est pas sympa les enfants, enfin j'ai quand même réussi à m'ensortir et réussir à avoir se que je voulais.
Voila en cliquant sur le bouton 3
je lance une boucle qui me fais clignoter des labels voir ci dessous :
Private Sub CommandButton3_Click()
Dim moncontrole As Object, NomDuControl As String
NomDuControl = "label" ' nom du type de controle sur le quel on veut boucler
For Each moncontrole In Frame1.Controls
' ici on regarde si le controle dans la variable MonControle est bien un label si oui on continu si non on passe au suivant
If Left(LCase(moncontrole.Name), Len(NomDuControl)) = NomDuControl Then
If moncontrole.Caption = TextBox1.Value Then ' ici on compare la valeur du label trouve avec la valeur de la textbox
With moncontrole ' si la valeur est identique on met en forme le label
End With
Exit For
End If
End If
Next
'clignote
Dim a As String
a = Timer
Do
Do Until a + 0.1 <= Timer
DoEvents
LoopIf moncontrole.Visible True Then moncontrole.Visible False Else moncontrole.Visible = True
a = Timer
Loop
End Sub
Je voudrai à present sortir de cette boucle et arreter le clignotement du label avec l'appui sur le bouton5 que dois-je faire ???
Private Sub CommandButton5_Click()
TextBox1.Value = ""
Kristof_Koder
Messages postés918Date d'inscriptionvendredi 3 août 2007StatutMembreDernière intervention27 octobre 200810 24 avril 2008 à 20:07
Ajoute une variable de type booleen à ta form, nommée flagBoucle par exemple.
Juste avant ton Do, tu la mets à False.
Dans le code de Command5, tu la mets à True.
Tu modifies un tout petit peu ton code pour sortir du Do Loop si flagBoucle est vrai :
Loop While Not flagBoucle
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 24 avril 2008 à 23:14
Bonsoir,
Et tu penses à ne pas faire tourner cette boucle trop longtemps (j'entends d'ici le ventilateur de refroiddissement de ton processeur s'énerver après un peu moins de deux minutes) ...
ticrain
Messages postés178Date d'inscriptionjeudi 15 mars 2007StatutMembreDernière intervention 2 janvier 2015 25 avril 2008 à 12:36
Bonjour les ptis loups
Comment puis je faire avec mon code pour utiliser application.ontime? je trouve que le prog fonctionne bien le problème c'est pour sortir!!!!
Kristof_koder voici ce que j'ai fai avec ce que tu m'a dit:
Private Sub CommandButton3_Click()
Dim moncontrole As Object, NomDuControl As String
NomDuControl = "label" ' nom du type de controle sur le quel on veut boucler
For Each moncontrole In Frame1.Controls
' ici on regarde si le controle dans la variable MonControle est bien un label si oui on continu si non on passe au suivant
If Left(LCase(moncontrole.Name), Len(NomDuControl)) = NomDuControl Then
If moncontrole.Caption = TextBox1.Value Then ' ici on compare la valeur du label trouve avec la valeur de la textbox
With moncontrole ' si la valeur est identique on met en forme le label
End With
Exit For
End If
End If
Next
'clignote
Dim a As String
a = Timer
flagboucle=false
Do
Do Until a + 0.1 < = Timer
DoEvents
LoopIf moncontrole.Visible True Then moncontrole.Visible False Else moncontrole.Visible = True
a = Timer
Loop
end sub
Private Sub CommandButton5_Click()
TextBox1.Value = ""
'clignote
Dim a As String
a = Timer
flagboucle=true
Do
Do Until a + 0.1 < = Timer
DoEvents
LoopIf moncontrole.Visible True Then moncontrole.Visible True Else moncontrole.Visible = True
a = Timer
Loop While Not flagBoucle
end sub
Ca ne fonctionne pas merci pour votre aide
Vous n’avez pas trouvé la réponse que vous recherchez ?
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 25 avril 2008 à 14:14
Dans ton UserForm :
Option Explicit
Private Sub CommandButton1_Click()
mbTimerEnabled = True
OnTime
End Sub
Private Sub CommandButton2_Click()
mbTimerEnabled = False
End Sub
---------------
dna sun module :
Option Explicit
Public mbTimerEnabled As Boolean
Public Sub OnTime()
Dim oControl As Object
Const Second As Double = 0.0000115741
For Each oControl In UserForm1.Controls
If TypeOf oControl Is MSForms.Label Then
If mbTimerEnabled Then
oControl.Visible = Not oControl.Visible
Else
oControl.Visible = True
End If
End If
Next oControl
If mbTimerEnabled Then
Application.OnTime Now + Second / 2, "OnTime"
End If
End Sub
ticrain
Messages postés178Date d'inscriptionjeudi 15 mars 2007StatutMembreDernière intervention 2 janvier 2015 25 avril 2008 à 17:32
Merci Renfield de m'aider
Alors j'ai testé ce que tu m'as donné , et en faite quand je clic sur bouton j'ai tous les labels de mon userform qui clignote et non pas celui que j'ai demandé dans la textbox. Il manque encore une comparaison entre la saisie dans la textbox et le label recherché. Il y'a un mix à faire entre se que tu m'as donné et se que moi j'ai fais. Merci Renfield. Je cherche en même temps...
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 26 avril 2008 à 22:45
ben juste que si tu veux faire clignotter un label, mets ce code :
On Local Error Resume Next
Set oControl = UserForm1.Controls(UserForm1.TextBox1.Value)
If Not Nothing Is oControl Then
If mbTimerEnabled Then
oControl.Visible = Not oControl.Visible
Else
oControl.Visible = True
End If
End If