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 :

changement de couleur en rapport avec un champ


Sujet :

IHM

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 51
    Points : 10
    Points
    10
    Par défaut changement de couleur en rapport avec un champ
    je souhaite changer la couleur d'un bouton(texte ou fond) en fonction du resultat d'un champ dans une table.
    on m'a parlé de DLookup, mais je n'ai rien trouvé qui pouvait correspondre
    merci de votre aide.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Je sais que dlookup ne peut pas le faire.

    Cherches dans la FAQ.
    Amicalement

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 51
    Points : 10
    Points
    10
    Par défaut
    j'arrete pas depuis plus d'une heure et je trouve pas

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Regarde aussi dans les anciens post. Ca été abordé en tout cas, c'est que je ne sais plus ou c'est.

    Du courage.
    Amicalement

  5. #5
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    Un exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     Select Case DLookUp("[champ]","NomTable","[nChamp]=8")
     Case <100
       Me!Bouton.ForeColor = RGB(255,0,0)
     Case >= 100
       Me!Bouton.ForeCOlor = RGB(0,255,0)
     End Select

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 51
    Points : 10
    Points
    10
    Par défaut
    presque ca !
    pas d' erreur

    nom du bouton : ctl102
    la table : HLL
    le champ : condition
    les valeurs pour les couleurs : disponible = vert
    entretien = orange
    travaux = rouge.

    j'ai mis ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Ctl102_Click()
    Select Case DLookup("[condition]", "HLL", "[condition]='travaux'")
     Case Is = travaux
       Me!Ctl102.ForeColor = RGB(255, 0, 0)
     Case Is = disponible
       Me!Ctl102.ForeColor = RGB(0, 0, 0)
     Case Is = entretien
       Me!Ctl102.ForeColor = RGB(241, 166, 85)
     End Select
    DoCmd.OpenForm "HLL", , , "Emplacement = '102'"
    End Sub
    mais aucun changement de couleur de mes boutons, on est pas loin, je le sent

    HELPPPPPPP

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Dans ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Sub Ctl102_Click()
    Select Case DLookup("[condition]", "HLL", "[condition]='travaux'")
     Case  "travaux"
       Me!Ctl102.ForeColor = RGB(255, 0, 0)
     Case  "disponible"
       Me!Ctl102.ForeColor = RGB(0, 0, 0)
     Case  "entretien"
       Me!Ctl102.ForeColor = RGB(241, 166, 85)
     End Select
    DoCmd.OpenForm "HLL", , , "Emplacement = '102'"
    End Sub
    travaux etc.. je pense est du texte, met le entre "

    1 - Est-ce que le DLookup te renvoi au moins une valeur (faire le test avec une messagbox

    2 -Ton bouton ne change pas de couleur, la prorpriété forecolor est pour la couleur du texte, je t'ai dit dans un précédent post que pour la couleur du bouton il faut utilise le Bouton de MSForms 2.0 command bouton (dans la liste des contrôles un marteau

    Starec

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 51
    Points : 10
    Points
    10
    Par défaut
    merci de ta patiance


    ca marche presque,
    le "marteau" n'a aucune fonction, je clic dessus en ayant selectionné le bouton et, rien!
    mon texte de bouton devient rouge (travaux)mais une fois sur 3.
    en faite, j'ouvre 2 fois avec mon bouton 102, le formulaire correspondant pour avoir le changement de couleur, mais apres changement de "travaux" en "disponible", le bouton reste rouge.
    je ne l'ai pas encore vu en orange ( entretien).

    voila.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Re

    Recontrôle bien les libélles de ta table et dans ton select case, il doivent être rigoureusement identiques. Fait un copier coller pour être sur.

    Starec

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 51
    Points : 10
    Points
    10
    Par défaut
    j'ai retiré
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    , "[condition]='travaux'"
    ca marche mais il faut que j' ouvre 2 fois le formulaire, par le bouton pour que ca fonctionne.
    les couleurs marchent aussi noir/orange/rouge.
    mais 2 fois pour avoir la fonction.

    j'ai ajouté ca pour lui dire de regarder dans le bon enregistrement
    je sais pas si j'ai bon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select Case DLookup("[condition]", "HLL", "Emplacement = '102'")
    je suis toujours obliger de faire l'ouverture du formulaire 2 fois.

  11. #11
    Invité
    Invité(e)
    Par défaut
    Re

    As-tu fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MsgBox DLookup("[condition]", "HLL", "[condition]='travaux'")
    avant ton select case pour voir ce que tu récupéres (à tester sur différents boutons),

    Tu as quoi dans le champ condition comme paramètres possibles ?

    Starec

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 51
    Points : 10
    Points
    10
    Par défaut
    formulaire HLL
    dans le champ condition:
    disponible
    entretien
    travaux
    dans le champ :emplacement
    102
    c'est le n° de la machine

    ca me repond : disponible ! avec ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Ctl102_Click()
    MsgBox DLookup("[condition]", "HLL", "Emplacement = '102'")
    Select Case DLookup("[condition]", "HLL", "Emplacement = '102'")
     Case "travaux"
       Me!Ctl102.ForeColor = RGB(255, 0, 0)
     Case "disponible"
       Me!Ctl102.ForeColor = RGB(0, 0, 0)
     Case "entretien"
       Me!Ctl102.ForeColor = RGB(241, 166, 85)
     End Select
    DoCmd.OpenForm "HLL", , , "Emplacement = '102'"
    End Sub

  13. #13
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 040
    Points
    16 040
    Par défaut
    Bonjour,

    J'ai relu un peu toutes les interventions.

    Je pense que ton problème vient de l'utilisation que tu fais de ton code.

    Si j'ai bien compris.

    1) A l'ouverture de ta base, tu ouvres un formulaire contenant X boutons, soit le nombre de machine que tu as.

    2) Tu désires que la couleur de la police des boutons reflete l'état des machines.

    3) sur click d'un bouton, tu ouvres un formulaire affichant les carctéristiques de ta machine.

    4) Eventuellement, tu modifies l'état de la machine.

    5) Tu fermes le formulaire et tu désires que le bouton correspondant affiche la couleur correspondant au nouvel état de la machine.

    Est-ce bien cela ?

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 51
    Points : 10
    Points
    10
    Par défaut
    vi vi tout a fait ca !

  15. #15
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 040
    Points
    16 040
    Par défaut
    Re,

    Aors, il te faut faire quelques légères modifications. Le code que tu as fait avec l'aide de Starec reste cependant valable dans l'ensemble.

    1) Pour chaque bouton, la procédure sur click est simplifiée et devient simplement (En remplaçant le numéro d'emplacement) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Ctl102_Click()
    DoCmd.OpenForm "HLL", , , "Emplacement = '102'"
    End Sub
    2) Ensuite tu vas créer une nouvelle fonction dans un module standard, que tu appelleras par exemple CouleurBouton, et dans laquelle tu vas placer ton ancien code, utilisé pour chacun des boutons. Cela donne :

    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
    Function CouleurBouton()
    Select Case DLookup("[condition]", "HLL", "Emplacement = '102'")
     Case "travaux"
       Forms!frmBouton!Ctl102.ForeColor = RGB(255, 0, 0)
     Case "disponible"
       Forms!frmBouton!Ctl102.ForeColor = RGB(0, 0, 0)
     Case "entretien"
       Forms!frmBouton!Ctl102.ForeColor = RGB(241, 166, 85)
     End Select
    Select Case DLookup("[condition]", "HLL", "Emplacement = '103'")
     Case "travaux"
       Forms!frmBouton!Ctl103.ForeColor = RGB(255, 0, 0)
     Case "disponible"
       Forms!frmBouton!Ctl103.ForeColor = RGB(0, 0, 0)
     Case "entretien"
       Forms!frmBouton!Ctl103.ForeColor = RGB(241, 166, 85)
     End Select
     
    'Etc... pour chacun de tes boutons
     
    End Function
    Tu remarqueras au passage que tu dois changer Me!Ctl.. par la désignation complète du formulaire. Tu dois donc remplacer "frmbouton" par le nom de ton formulaire.

    Et cette fonction, tu vas l'appeler lors de l'ouverture de ton formulaire qui contient les boutons :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Form_Open(Cancel As Integer)
        CouleurBouton                
    End Sub
    Et à la fermeture de ton formulaire "HLL".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Form_Close()
        CouleurBouton
    End Sub
    Pas testé, mais ça devrait le faire...

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 51
    Points : 10
    Points
    10
    Par défaut
    merci je regarde ca !

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 51
    Points : 10
    Points
    10
    Par défaut
    marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Ctl101_Click()
    DoCmd.OpenForm "HLL", , , "Emplacement = '101'"
    End Sub
    erreur sur la ligne DoCmd....

  18. #18
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 040
    Points
    16 040
    Par défaut
    Re,

    "Emplacement" est de quel type ? Numérique ou texte ?

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 51
    Points : 10
    Points
    10
    Par défaut
    numerique
    mais je comprend pas trop là :
    Tu remarqueras au passage que tu dois changer Me!Ctl.. par la désignation complète du formulaire. Tu dois donc remplacer "frmbouton" par le nom de ton formulaire.

  20. #20
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 040
    Points
    16 040
    Par défaut
    Re,

    Alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "HLL", , , "Emplacement = " & 101
    Pour ta deuxième question. Comme la fonction n'est plus placée dans le code du formulaire qui contient les boutons, tu ne peux plus utiliser "Me". tu dois déclarer le nom complet de l'objet qui contient le contrôle.

    ainsi, si le formulaire qui contient tes boutons s'appelle "FormBoutons", tu dois écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms!FormBoutons!Ctl102.ForeColor = RGB(255, 0, 0)
    et non plus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me!Ctl102.ForeColor = RGB(255, 0, 0)
    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. [XL-2013] Pb changement de couleur de ligne avec fonction If en VBA
    Par Pierre8585 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/03/2015, 12h02
  2. Réponses: 7
    Dernier message: 08/07/2014, 12h21
  3. [AC-2003] Problème de changement de couleur de text dans un champ
    Par Expensive dans le forum IHM
    Réponses: 2
    Dernier message: 01/11/2012, 16h57
  4. Graphique : Couleurs en rapport avec les intitulés.
    Par Bandoulier dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 10/03/2011, 11h51
  5. tester un champ vide avec changement de couleur
    Par lolothom dans le forum IHM
    Réponses: 4
    Dernier message: 13/05/2007, 21h08

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