Boucle For Each sur les contrôles

DAVIMIKA Messages postés 118 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 10 janvier 2014 - 21 mai 2008 à 14:13
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 21 mai 2008 à 23:13
Bonjour,

Je voudrais à l’aide d’une boucle mettre le libellé de mes case à cocher en rouge lorsqu’il sont cocher, mais je n’arrive pas imbriquer les différents if.



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 




Merci pour votre aide.










Salutations.


 



For Each Ctl In Me.Controls
















      If Ctl.ControlType = acCheckBox Then






    


        If Ctl.Value = 0 Then






     


            If Ctl.ControlType = acLabel Then






            


             Ctl.ForeColor = 255






                Else






                         Ctl.ForeColor = 6697728






                End If






         


    End If






       


 
End If



   

Next Ctl



 




Salutations.

5 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
21 mai 2008 à 14:20
Bonjour

Explique mieux, quel est ton pb ?

Ensuite, évite cela :
Ctl.ForeColor = 255
Préfère cela :
Ctl.ForeColor = RGB(255,0,0)

Le fer à souder a besoin d'une panne pour fonctionner.
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
21 mai 2008 à 14:21
salut

    Dim ctl As Control
    
For Each ctl In Me.Controls
    If TypeOf ctl Is msforms.CheckBox Then
        If ctl.Value = True Then
            ctl.ForeColor = 255
        Else
            ctl.ForeColor = 6697728
        End If
    End If
Next ctl

~
<small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small>

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0
DAVIMIKA Messages postés 118 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 10 janvier 2014
21 mai 2008 à 16:31
Bonjour HHenry,

Merci pour ta réponse et tes conseils.
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??> 

Lorsque:

ctl.value = 0

le code passe directement au dernier:

End if

 

Lorsque:

ctl.value = -1

le code passe à:

If Ctl.ControlType = acLabel Then

Puis à:

Else

Et erreur 438 objet/propriété non gérée par cet objet sur cette ligne

Ctl.ForeColor = 6697728

Salutations
0
DAVIMIKA Messages postés 118 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 10 janvier 2014
21 mai 2008 à 16:36
Bonjour Mortalino,

Merci pour ta réponse.

Le code passe  de :
If typeof……au<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>

Denier
End if

Salutations
0

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

Posez votre question
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
21 mai 2008 à 23:13
Es-tu sous Access ?

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
Rejoignez-nous