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 :

Application d'une couleur de fond RVB dans un état [AC-2003]


Sujet :

IHM

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Points : 7
    Points
    7
    Par défaut Application d'une couleur de fond RVB dans un état
    Bonjour,
    Je suis sous Access 2003 et je cherche à définir une couleur de fond sur un champ. J'ai le code rvb stocké dans un autre champ.
    J'ai testé ce code mais rien à faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim x As Integer
    x = Détail![Couleur de fond]
    MsgBox (x)
    Me.Détail![Espèces].BackColor = x
    Pouvez vous me donner un coup de main
    Bien cordialement

  2. #2
    Membre expérimenté Avatar de RobiPMS
    Homme Profil pro
    Conseiller psycho-pédagogique
    Inscrit en
    Octobre 2007
    Messages
    827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Conseiller psycho-pédagogique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 827
    Points : 1 506
    Points
    1 506
    Par défaut
    Bonjour.
    Cela peut arriver si la propriété "Style fond" du champ est sur "Transparent". Pour que l'application d'une couleur par VBA soit visible, il faut définir cette propriété sur "Standard". D'autre part je pense qu'il faut rédiger le code comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim x As Integer
    x = [Couleur de fond]
    MsgBox (x)
    Espèces.BackColor = x
    Précision : la procédure doit être placée dans l'événement Sur impression de la section détail.

    Cordialement.

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

    Pour information les couleurs RGB sont des données de type Long, et non Entier (Integer).

    Philippe

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Bonjour
    merci pour vos réponse j'ai modifier le code comme suite a vos conseille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim x As Long
    On Error GoTo Err_erreur
    x = [Couleur de fond]
    'MsgBox (x)
    Espèces.BackColor = x
     
    Err_erreur:
    Espèces.BackColor = 0
    mais rien ne change erreur 93
    merci de vos retour
    Bien cordialement

  5. #5
    Membre expérimenté Avatar de RobiPMS
    Homme Profil pro
    Conseiller psycho-pédagogique
    Inscrit en
    Octobre 2007
    Messages
    827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Conseiller psycho-pédagogique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 827
    Points : 1 506
    Points
    1 506
    Par défaut
    Bonjour.
    L'erreur 93 est celle relative à "Chaine de motif non valide". A mon avis, c'est ce que tu mets dans le champ [Couleur de fond] qui n'est pas reconnu Access VBA et ne permet pas d'appliquer une couleur de fond. Peux-tu expliquer ton champ Couleur de fond et donner un exemple de ce que tu y mets?
    Cordialement.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Bonsoir,
    merci pour la réponse.
    j'ai intégré dans mon champs couleur de fond une valeur numérique récupérer d'un tableau excel ou j'ai défini la couleur de la plante qui fais référence.
    j'ai dans un formulaire fait la même chose pour un champs et celas fonctionne bien Voici copie du code et de la valeur "10092543" pour un jaune pale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        If [Couleur de fond] = 0 Then
            Me.Couleurexcel.ForeColor = 0
        Else
     
        Me.Couleurexcel.ForeColor = [Couleur de fond]
        Me.Couleurexcel.BackColor = [Couleur de fond]
        End If
    Err_Modifiable33_Click:
        Me.Couleurexcel.ForeColor = 0
    bien cordialement

  7. #7
    Membre expérimenté Avatar de RobiPMS
    Homme Profil pro
    Conseiller psycho-pédagogique
    Inscrit en
    Octobre 2007
    Messages
    827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Conseiller psycho-pédagogique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 827
    Points : 1 506
    Points
    1 506
    Par défaut
    Je viens de reproduire dans un état la situation que tu décris, et j'ai bien le résultat souhaité.
    Mon code est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Détail_Print(Cancel As Integer, PrintCount As Integer)
    Dim lngJaune As Long
    lngJaune = [Couleur de fond]
    Espèces.BackColor = lngJaune
    End Sub
    (J'ai bien entendu remplacé les noms de mes champs par les tiens!)
    Et le format du champ numérique du champ où j'ai stocké la valeur 10092543 est de type Entier long.
    Je n'ai pas d'erreur et la couleur de fond est bien jaune.
    Cordialement.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Merci de votre retour.
    mon problème ce trouve dans un état ou je voudrais que le champs spécifié soit de la couleur donner par [Couleur de fond] cela marche très bien dans les formulaires mais pas en feuille de donner ni dans les états
    bien cordialement

  9. #9
    Membre expérimenté Avatar de RobiPMS
    Homme Profil pro
    Conseiller psycho-pédagogique
    Inscrit en
    Octobre 2007
    Messages
    827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Conseiller psycho-pédagogique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 827
    Points : 1 506
    Points
    1 506
    Par défaut
    Cela doit marcher dans un état si toutes les conditions sont remplies. Je le fais sans problème dans mes états chaque fois que ça m'est utile.
    Pour que la procédure soit prise en compte, tous les éléments suivants doivent être réunis :
    - affichage de l'état en mode "Aperçu avant impression", ou impression directe. Si on l'affiche en mode "Etat", le BackColor n'est pas appliqué (dans le VBA d'ouverture de l'état, acPreview et pas acViewReport).
    - la propriété "Style fond" du champ est sur "Standard"
    - la procédure événementielle est associée à l'événement "Sur impression" de la section détail de l'état.
    Si tu as vérifié tout cela, et que le champ [Couleur de fond] existe dans l'état et affiche lui même le code correct, je ne vois vraiment pas pourquoi cela ne marcherait pas.
    Désolé, mais je ne vois rien d'autre

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Bonjour j'ai en effet trouvez la solution suite à la dernière réponse, j'avais oublier d'ajouter le .
    encore merci de votre aide voici le code si d'autre rencontre les même problématique.
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    Dim x As Long
    On Error GoTo Err_erreur
    x = [Coul]
    'MsgBox (x)
    If x = 0 Then
    Me.Détail.BackColor = [Coul]
    Me.Espèces.ForeColor = 16777215
    Me.Contenants.ForeColor = 16777215
    Me.Coul.ForeColor = 16777215
    Me.Espece.ForeColor = 16777215
    Me.Quantite.ForeColor = 16777215
    Me.Bq.ForeColor = 16777215
    Me.groupe.ForeColor = 16777215
     
    Else
    Me.Détail.BackColor = [Coul]
    Me.Espèces.ForeColor = 0
    Me.Contenants.ForeColor = 0
    Me.Coul.ForeColor = 0
    Me.Espece.ForeColor = 0
    Me.Quantite.ForeColor = 0
    Me.Bq.ForeColor = 0
    Me.groupe.ForeColor = 0
    End If
     
    If position = "ST" Then
        Me.position.BackColor = 255
        ' rouge
    Else
            If position = "BQH" Then
                Me.position.BackColor = 65535
                'jaune
            Else
                    If position = "BQM" Then
                        Me.position.BackColor = 65280
                        'vert
                    Else
                            If position = "BQB" Then
                                Me.position.BackColor = 26367
                                'Orange
                            Else
                                Me.position.BackColor = 213884
                                'Marron
     
                            End If
                    End If
            End If
    End If
    Err_erreur:
    Espèces.BackColor = 16777215
     
    End Sub
    si vous avez des piste car je doit faire le même pour un formulaire en mode feuille de donner et la encore aucune couleur.
    bien cordialement

  11. #11
    Membre expérimenté Avatar de RobiPMS
    Homme Profil pro
    Conseiller psycho-pédagogique
    Inscrit en
    Octobre 2007
    Messages
    827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Conseiller psycho-pédagogique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 827
    Points : 1 506
    Points
    1 506
    Par défaut
    Re-Bonjour.
    Une piste pour le formulaire en mode feuille de données : la mise en forme conditionnelle.
    Par exemple, ceci marche bien dans l'enregistrement actif du formulaire en mode feuille de données : sur l'événement Sur activation du formulaire, le code qui suit applique la couleur de fond enregistrée dans le champ couleur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Form_Current()
    Nom_Champ1.FormatConditions.Add acFieldHasFocus
    Nom_Champ1.FormatConditions.Item(0).BackColor = Me.Champ_couleur
    End Sub
    Il y a certainement d'autres façons de faire, mais c'est à explorer pour adapter à ce que tu veux.
    Attention : à la fermeture du formulaire, il faut supprimer les mises en forme appliquées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Nom_Champ1.FormatConditions.Delete
    Voir les tutos suivants : http://warin.developpez.com/access/mfc/ et http://starec.developpez.com/tuto/msfcillimitee/
    et dans les ressources, une astuce que j'utilise et qui marche très bien http://www.developpez.net/forums/d11...trement-actif/, à adapter...
    Et bon travail!

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Bonjour,
    merci pour l'info mais après test je me retrouve avec une erreur 7968 paramètre de type incorrecte
    avez vous une solution ?
    bien cordialement

  13. #13
    Membre expérimenté Avatar de RobiPMS
    Homme Profil pro
    Conseiller psycho-pédagogique
    Inscrit en
    Octobre 2007
    Messages
    827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Conseiller psycho-pédagogique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 827
    Points : 1 506
    Points
    1 506
    Par défaut
    Personnellement, je n'utilise pas cela dans les mêmes conditions. J'ai juste fait quelques essais pour voir si c'était possible en formulaire mode FDD, (et ça l'est effectivement) avant de te donner cette piste.
    Je pense que ça vaudrait la peine de creuser la question. Il vaudrait mieux que tu mettes "Résolu" sur cette discussion, et que tu ouvres une autre discussion, en expliquant de quelle manière tu voudrais arriver à mettre en forme tes champs dans le formulaire en mode FDD, et en postant le code que tu as déjà essayé.
    En ouvrant une nouvelle discussion, tu as plus de chances que quelqu'un d'autre s'y intéresse, et peut-être quelqu'un qui a déjà fait cela.
    De toute façon, je chercherai aussi et si je trouve, je répondrai...

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Bonjour merci pour ce conseil je fais le nécessaire pour clôturer la question et j'en repose une
    bien cordialement

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

Discussions similaires

  1. [WD12] Mettre une couleur de fond dans un champ d'un etat
    Par galsen.quebec dans le forum WinDev
    Réponses: 2
    Dernier message: 01/06/2011, 15h08
  2. [FPDF] Une couleur de fond autre que blanc ?
    Par calogerogigante dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 20/08/2007, 01h16
  3. Je n'arrives pas a mettre une couleur de fond
    Par metalcoyote dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 03/05/2007, 17h42
  4. Réponses: 4
    Dernier message: 22/04/2007, 19h20
  5. Couleur de fond conditionnelle dans un état
    Par poplite dans le forum IHM
    Réponses: 13
    Dernier message: 27/02/2007, 01h12

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