IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

changer la couleur de tous les contrôles


Sujet :

IHM

  1. #1
    Membre habitué
    Avatar de Peanut
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    410
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 410
    Points : 147
    Points
    147
    Par défaut changer la couleur de tous les contrôles
    Lors de la validation de mon formulaire je passe en jaune les champs invalides.
    Je voudrais par la suite les repasser en blancs, sans les nommer 1 par 1 tant qu'à faire, mais ça ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        For Each oCtrl In Forms("IndexingForm").Controls
            If oCtrl.BackColor = vbYellow Then
                oCtrl.BackColor = vbWhite
            End If
        Next
    => Propriété non gérée par cet objet.

    Comment je peux faire svp ?

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Il nous manque le début !
    Donne nous le début de ton code.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Membre habitué
    Avatar de Peanut
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    410
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 410
    Points : 147
    Points
    147
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Function SaveProperties()
    Dim oCtrl As Control
     
        For Each oCtrl In Forms("IndexingForm").Controls
            If oCtrl.BackColor = vbYellow Then
                oCtrl.BackColor = vbWhite
            End If
        Next
     
        ...
     
    Exit Function
    End Function
    Note : les contrôles concernés sont soit des zones de texte, soit des zones de liste modifiable.

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Function SaveProperties()
    Dim oCtrl As Control
     
        For Each oCtrl In Forms("IndexingForm").Controls
            If oCtrl.BackColor = vbYellow Then
                oCtrl.BackColor = vbWhite
            End If
        Next oCtrl
     
        ...
     
    Exit Function
    End Function
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Membre habitué
    Avatar de Peanut
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    410
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 410
    Points : 147
    Points
    147
    Par défaut
    Non, j'ai le message d'erreur sur le oCtrl.BackColor.

    (alors que cela focntionne quand je nomme manuellement les contrôles :
    Forms("IndexingForm")("zlmApplication2").BackColor = vbWhite par exemple)

  6. #6
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    En fait, je viens de le tester et chez moi il passe, mis à part le If qui n'a pas fonctionné, mais par contrel le changement de couleur passe.

    Ce serait une bibliothèque manquante.

    J'ai comme biblothèques installées

    VBA
    MS Access 11 Object Library
    OLE automation
    MS DAO 3.6
    Et
    MS ActiveX Data Objects 2.5 Lib
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  7. #7
    Membre habitué
    Avatar de Peanut
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    410
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 410
    Points : 147
    Points
    147
    Par défaut
    Comment ça "mis à part le if" ? : si tu mets juste oCtrl.BackColor = vbWhite, ça fonctionne ?

    Où voit-on les bibliothèques installées ?

  8. #8
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    En fait, comme ils sont déjà blanc, je demande au formulaire de les passer au rouge et il me le fait.
    Si je met la condition, il ne me fait rien.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  9. #9
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    bjr,

    Tous les contrôles n'ont pas de propriété BackColor
    Il faut soit tester le type du contrôle, soit gérer l'erreur avec On Error

  10. #10
    Membre habitué
    Avatar de Peanut
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    410
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 410
    Points : 147
    Points
    147
    Par défaut
    Yes ! J'ai ajouté un On Error et ça fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        For Each oCtrl In Forms("IndexingForm").Controls
            On Error Resume Next
            If oCtrl.BackColor = vbYellow Then
                oCtrl.BackColor = vbWhite
            End If
        Next
    Question : quelle est la portée de ce On Error ?
    Je dois le réinitialiser (comment ?) à la sortie de la boucle ou la portée est seulement l'intérieur de la boucle ?

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Salut,

    Citation Envoyé par Arkham
    Il faut soit tester le type du contrôle, soit gérer l'erreur avec On Error
    Je préfére tester le type de controle avce la propriété ControlType :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    Dim oCtrl As Control
     
        For Each oCtrl In Forms("IndexingForm").Controls
            If oCtrl.ControlType = acTextBox Or oCtrl.ControlType = acListBox Or oCtrl.ControlType = acComboBox Then
                If oCtrl.BackColor = vbYellow Then
                    oCtrl.BackColor = vbWhite
                End If
            End If
        Next oCtrl

Discussions similaires

  1. Réponses: 23
    Dernier message: 23/03/2011, 15h41
  2. Définir la couleur de tous les backgrounds
    Par karatepla dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 04/06/2005, 14h54
  3. Réponses: 2
    Dernier message: 01/06/2005, 12h13
  4. Réponses: 1
    Dernier message: 27/10/2004, 15h36
  5. changer le texte de tous les Items dans un mainmenu
    Par C.M dans le forum Composants VCL
    Réponses: 7
    Dernier message: 25/07/2004, 13h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo