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 :

[Formulaire]Modifier la couleur du texte, en fonction de la valeur


Sujet :

IHM

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 28
    Points : 16
    Points
    16
    Par défaut [Formulaire]Modifier la couleur du texte, en fonction de la valeur
    Bonjour,

    A l'affichage d'un formulaire, je souhaite modifier la couleur des controles en fonction de leur valeur :
    si le controle = 2, alors couleur texte (Forecolor) = rouge

    J'ai essayé ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    Dim ctl As Control
     
    For Each ctl In Me.Controls
     
        If ctl.Value = 0 Then
            ctl.ForeColor = 8454016
        End If
     
        If ctl.Value = 1 Then
            ctl.ForeColor = 4227327
        End If
     
        If ctl.Value = 2 Then
            ctl.ForeColor = 255
        End If
     
        If ctl.Value = "x" Then
            ctl.ForeColor = 16744448
        End If
     
    Next ctl
    Mais cela m'affiche dans chaque controle : #Supprimé

    Merci de votre aide.

  2. #2
    Membre chevronné Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Points : 2 019
    Points
    2 019
    Par défaut
    Pourquoi n'utilise tu pas la mise en forme conditionnelle?

  3. #3
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour,

    A mon avis, il n'y a aucun rapport entre ta procédure et l'affichage #supprimé, qui survient généralement quand la source de l'enregistrement courant a été supprimée et que le formulaire n'a pas été réactualisé.

    Sinon, pour la procédure :
    1. il conviendrait de tester le type de contrôle avant de modifier la couleur de police, certains contrôles n'ayant pas cette propriété.
    2. le semble bizarre...
    3. Ce serait plus court avec un select case ou en utilisant Choose. par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim ctl As Control
     
    For each ctl in Me.Controls
        If ctl.Type = acTextBox then
            ctl.ForeColor = Nz(Choose(ctl.Value + 1, 8454016, 4227327, 255), 1674448)
        End If
    next ctl
    ...
    Bon courage,

    PGZ

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    Pourquoi n'utilise tu pas la mise en forme conditionnelle?
    Il y plus de 70 items, une procédure générique serait plus simple.

    Pour ce qui est de tester le type de controle, ce n'est pas la peine, il n'ya que des textbox dans le formulaire.

    J'ai essayé ta procédure, mais j'ai comme réponse ' procédure ou méthode non gérée par cette objet --> If ctl.Type = acTextBox Then

    Je vais continuer à chercher.

    Merci à tous les deux.

  5. #5
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    ' procédure ou méthode non gérée par cette objet --> If ctl.Type = acTextBox Then
    au temps pour moi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If ctl.ControlType = acTextBox
    mais si tu n'as pas besoin de tester le type de contrôle...

    Bon courage,

    PGZ

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    J'ai essayé sans tester le type de controle, mais il me répond également : procédure ou méthode non gérée par cette objet.

    Si j'effectue le test su le type de controle, il m'affiche : 'Utilisation incorrect de null' (mais il me met bien en vert les champs à 0), par contre les champs vides doivent poser un problème.

    Merci

  7. #7
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    C'est sûr que s'il y a des valeurs nulles, ça pose pb. dans ce cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim ctl As Control
     
    For each ctl in Me.Controls
        If ctl.ControlType = acTextBox then
            ctl.ForeColor = Nz(Choose(Nz(ctl.Value,3) + 1, 8454016, 4227327, 255), 1674448)
        End If
    next ctl
    PGZ

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    Merci, ça fonctionne parfaitement.

    Le seul problème que je rencontre maintenant, c'est quand un champ contient du texte, notamment des "x". Là, j'ai droit à "Incomptabilité de type".

    Merci pour ton aide

Discussions similaires

  1. Mettre en couleurs un texte en fonction de sa valeur.
    Par yann123456 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/02/2008, 16h34
  2. Modifier la couleur du texte d'un champ texte?
    Par wormseric dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 13/09/2007, 15h10
  3. Réponses: 1
    Dernier message: 08/06/2006, 12h01
  4. [TStatusBar] Modifier la couleur du texte d'un panel
    Par Kerod dans le forum C++Builder
    Réponses: 18
    Dernier message: 05/03/2006, 16h46
  5. Comment modifier la couleur du texte sélectionné ?
    Par VincentR dans le forum Composants VCL
    Réponses: 4
    Dernier message: 14/06/2005, 22h29

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