Boucle For Each sur les contrôles

Signaler
Messages postés
119
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
10 janvier 2014
-
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
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

Messages postés
14727
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
29 septembre 2020
144
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
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
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
Messages postés
119
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
10 janvier 2014

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
Messages postés
119
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
10 janvier 2014

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
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
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