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 :

Surligner étiquette selon contenu


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 103
    Points : 60
    Points
    60
    Par défaut Surligner étiquette selon contenu
    Bonjour à tous,

    j'ai créé une base de donnée pour le travail.
    dans cette base de donnée il existe différents états, dont un qui me pose problème.

    je m'explique:

    je souhaite surligner une étiquette en fonction du contenu de la zone de texte en face de cette étiquette.

    exemple:

    étiquette: Vous disposez d'une extension de garantie: si "oui", alors surligner en jaune l'étiquette, si "non" ne pas surligner!

    j'espère avoir été clair dans la description de mon problème.
    j'ai effectué différentes recherches sans pour autant trouver une solution.

    Merci,
    Maxime

  2. #2
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Bonjour et bienvenu sur le forum.

    S'agissant d'un état, tu peux résoudre ton problème en VBA, lors de l'évènement Au Formatage de la section dans laquelle se trouve ton controle et son etiquette.

    Quelque chose du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
    If Me!Monchamp = "Une Valeur Particulière" Then
        Me!MonEtiquette.FontItalic = True
    Else
        Me!MonEtiquette.FontItalic = False
    End If
     
    End Sub
    Pour ma part je préfère une forme un peu plus condensée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
        Me!MonEtiquette.FontItalic = (Me!Monchamp = "Une Valeur Particulière")
    End Sub

    Ensuite, si tu as plusieurs champs à traiter, tu peux alors améliorer le code en nommant de manière logique les contrôles et les étiquettes correspondantes et en faisant une boucle sur la collection des contrôles...

    Bon courage
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 103
    Points : 60
    Points
    60
    Par défaut
    merci pour ta réponse rapide,
    je test tout ça rapidement et vous tient au courant

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 103
    Points : 60
    Points
    60
    Par défaut
    je viens de tester sur ma base et malgrer tout, cela ne fonctionne pas.
    j'ai pourtant bien suivi tes indications.

    pour vérifier que je n'ai pas commis d'erreur, ci dessous différents screens:

    etat en mode création:



    propriété du champ calculé:



    propriété de l'étiquette:




    Code Visual Basic:


    je ne vois pas vraiment où est mon erreur.
    merci de votre aide!

    Maxime

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 103
    Points : 60
    Points
    60
    Par défaut
    j'ai trouvé d'où venait mon erreur.
    Il s'agissait du "Option Compare database"

    à moi de trouver comment définir une couleur d'arrière plan!

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 103
    Points : 60
    Points
    60
    Par défaut
    Bonsoir,

    le code que m'a donné mout1234 fonctionne parfaitement.
    cependant vu que je souhaite afficher une couleur de fond à l'étiquette en fonction du contenu d'un champ texte j'ai adapté mon code qui donne ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
    If Me!Texte200 = "OUI" Then
    Me!Étiquette20.BackColor = RGB(255, 0, 0)
    Else
    Me!Étiquette20.BackColor = RGB(0, 255, 0)
    End If
    End Sub
    cependant cela ne modifie en rien la couleur de mon étiquette20 si le champ Texte200 = "OUI" !

    Merci de votre aide précieuse
    Maxime

  7. #7
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    BOnsoir,

    Es-tu sur que ton champ texte200 prend une valeur de type texte....

    Cela ne serait-il pas plutot un booléen?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If Me!Texte200 = True Then

    En passant, prend l'habitude de nommer explicitement tes objets, au moins dés qu'ils sont utilisés dans le code.
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 103
    Points : 60
    Points
    60
    Par défaut
    Merci pour ta réponse!
    il s'agit effectivement d'une valeur de type texte donc je ne comprend pas trop.

    ayant des connaissances limitées je n'ai pas trouvé d'autres solutions.
    j'ai pensé à cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
        Me!MonEtiquette.BackColor = 33023 = (Me!Monchamp = "Une Valeur Particulière")
    End Sub
    mais cela ne fonctionne bien évidemment pas :/

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 103
    Points : 60
    Points
    60
    Par défaut
    re bonjour,

    j'ai trouvé!
    effectivement l'erreur venait du format texte.
    la partie que je souhaitais colorier etait une étiquette, en la remplacant par une zone de texte cela fonctionne.

    Merci à toi mout1234 pour tes orientations

    Maintenant je vais voir pour faire une boucle!

    Maxime

  10. #10
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Citation Envoyé par maxime350 Voir le message
    ...
    Merci à toi mout1234 pour tes orientations ...

    De rien

    Un petit conseil, ne cherches pas les solutions raccourcies dans un premier temps... le plus important est de comprendre pourquoi cela marche...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
        Me!MonEtiquette.FontItalic = (Me!Monchamp = "Une Valeur Particulière")
    End Sub
    Dans ce code, Me!Monchamp = "Une Valeur Particulière" est un test logique, qui a donc une valeur True ou False. On peut donc utiliser cette valeur pour définir la propriété FontItalic qui attend un booléen.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
        Me!MonEtiquette.BackColor = 33023 = (Me!Monchamp = "Une Valeur Particulière")
    End Sub
    Me!Monchamp = "Une Valeur Particulière" vaut True ou False
    33023 = (Me!Monchamp = "Une Valeur Particulière") vaut toujours False puisque le nombre 33023 ne "vaut" ni True, ni False


    Ce code reviendrait donc à attribuer la valeur False à la propriété Backcolor qui attend un nombre ... ce qui donnera ici toujours la couleur noire.

    PS: en interne, False = 0 , True = -1 et sont donc assimilables à des nombres.

    BOn courage
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 12
    Dernier message: 12/04/2010, 17h27
  2. Event qui ne se déclenche pas et IsEnabled selon contenu Textbox
    Par Takumi dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 20/01/2010, 10h24
  3. Zone extensible selon contenu Mysql
    Par herve94400 dans le forum Dreamweaver
    Réponses: 1
    Dernier message: 26/08/2008, 14h15
  4. Réponses: 3
    Dernier message: 10/01/2008, 22h09
  5. Réponses: 1
    Dernier message: 28/09/2005, 23h37

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