Boucle For Each sur les contrôles

Messages postés
119
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
10 janvier 2014
- - Dernière réponse : cs_MPi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 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.
Afficher la suite 

5 réponses

Messages postés
14600
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 décembre 2019
137
0
Merci
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
Commenter la réponse de NHenry
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
0
Merci
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
Commenter la réponse de mortalino
Messages postés
119
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
10 janvier 2014
0
Merci
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
Commenter la réponse de DAVIMIKA
Messages postés
119
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
10 janvier 2014
0
Merci
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
Commenter la réponse de DAVIMIKA
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
15
0
Merci
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
Commenter la réponse de cs_MPi