OVH Cloud OVH Cloud

Couleurs dans un formulaire

5 réponses
Avatar
BAGTech
Bonjour !

J'esp=E8re que vous allez bien. Voici mon probl=E8me. J'ai un formulaire
contenant plusieurs sous-formulaire. Dans mon formulaire principale,
j'ai une liste d=E9roulante contenant les diff=E9rents secteurs de la
cie. Ce que je veux, c'est lorsque je s=E9lectionne un secteur, une
couleur apparaisse dans une petite boite que j'ai cr=E9er. Je poss=E8de
environ une quinzaine de secteurs et chacune =E0 sa propre couleur. Est-
ce possible? Voici ce que j,ai fait!

Private Sub tbl_Secteur_Doc_N=B0SecteurID_AfterUpdate()
If [tbl_Secteur_Doc_N=B0SecteurID] =3D "P10" Then [bteColor].BackColor
=3D RGB(255, 51, 204) Else [bteColor].BackColor =3D vbBlack
End If
If [tbl_Secteur_Doc_N=B0SecteurID] =3D "P20" Then [bteColor].BackColor
=3D RGB(255, 204, 204) Else [bteColor].BackColor =3D vbBlack
End If
If [tbl_Secteur_Doc_N=B0SecteurID] =3D "P30" Then [bteColor].BackColor
=3D RGB(204, 255, 255) Else [bteColor].BackColor =3D vbBlack
End If
If [tbl_Secteur_Doc_N=B0SecteurID] =3D "P40" Then [bteColor].BackColor
=3D RGB(255, 255, 0) Else [bteColor].BackColor =3D vbBlack
End If
If [tbl_Secteur_Doc_N=B0SecteurID] =3D "P50" Then [bteColor].BackColor
=3D RGB(204, 255, 204) Else [bteColor].BackColor =3D vbBlack
End If
If [tbl_Secteur_Doc_N=B0SecteurID] =3D "P80" Or "P82" Or "P88" Or
"P90" Or "P92" Or "P96" Then [bteColor].BackColor =3D RGB(153, 204, 0)
Else [bteColor].BackColor =3D vbBlack
End If
If [tbl_Secteur_Doc_N=B0SecteurID] =3D "P84" Or "P94" Then
[bteColor].BackColor =3D RGB(153, 51, 102) Else [bteColor].BackColor =3D
vbBlack
End If
If [tbl_Secteur_Doc_N=B0SecteurID] =3D "P86" Then [bteColor].BackColor
=3D RGB(255, 153, 0) Else [bteColor].BackColor =3D vbBlack
End If
If [tbl_Secteur_Doc_N=B0SecteurID] =3D "P98" Then [bteColor].BackColor
=3D RGB(255, 0, 0) Else [bteColor].BackColor =3D vbBlack
End If
If [tbl_Secteur_Doc_N=B0SecteurID] =3D "P99" Then [bteColor].BackColor
=3D RGB(0, 128, 128) Else [bteColor].BackColor =3D vbBlack
End If
End Sub

Y'a t'il une autre formule pour cela? Je ne sais plus! Mais je reste
positive, je suis sure que les experts en la mati=E8re sauront me
guider.

Je vous remercie =E0 l'avance!

Jos ;)

5 réponses

Avatar
Jessy Sempere
Bonjour

Tu pourrais socker dans ta table secteur les valeurs de RGB pour chaque
secteur, du coup, tu fais ta liste déroulante sur les 4 champs (id, r, g, b)
et sur ton événement après mise à jour de ta liste tu mets :

Private Sub tbl_Secteur_Doc_N°SecteurID_AfterUpdate()
dim R%, G%, B%
R = [tbl_Secteur_doc_N°secteurID].columns(1)
G = [tbl_Secteur_doc_N°secteurID].columns(2)
B = [tbl_Secteur_doc_N°secteurID].columns(3)
btecolor.backcolor = RGB(R, G, B)
End sub

--
@+
Jessy Sempere

------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"BAGTech" a écrit dans le message de news:

Bonjour !

J'espère que vous allez bien. Voici mon problème. J'ai un formulaire
contenant plusieurs sous-formulaire. Dans mon formulaire principale,
j'ai une liste déroulante contenant les différents secteurs de la
cie. Ce que je veux, c'est lorsque je sélectionne un secteur, une
couleur apparaisse dans une petite boite que j'ai créer. Je possède
environ une quinzaine de secteurs et chacune à sa propre couleur. Est-
ce possible? Voici ce que j,ai fait!

Private Sub tbl_Secteur_Doc_N°SecteurID_AfterUpdate()
If [tbl_Secteur_Doc_N°SecteurID] = "P10" Then [bteColor].BackColor
= RGB(255, 51, 204) Else [bteColor].BackColor = vbBlack
End If
If [tbl_Secteur_Doc_N°SecteurID] = "P20" Then [bteColor].BackColor
= RGB(255, 204, 204) Else [bteColor].BackColor = vbBlack
End If
If [tbl_Secteur_Doc_N°SecteurID] = "P30" Then [bteColor].BackColor
= RGB(204, 255, 255) Else [bteColor].BackColor = vbBlack
End If
If [tbl_Secteur_Doc_N°SecteurID] = "P40" Then [bteColor].BackColor
= RGB(255, 255, 0) Else [bteColor].BackColor = vbBlack
End If
If [tbl_Secteur_Doc_N°SecteurID] = "P50" Then [bteColor].BackColor
= RGB(204, 255, 204) Else [bteColor].BackColor = vbBlack
End If
If [tbl_Secteur_Doc_N°SecteurID] = "P80" Or "P82" Or "P88" Or
"P90" Or "P92" Or "P96" Then [bteColor].BackColor = RGB(153, 204, 0)
Else [bteColor].BackColor = vbBlack
End If
If [tbl_Secteur_Doc_N°SecteurID] = "P84" Or "P94" Then
[bteColor].BackColor = RGB(153, 51, 102) Else [bteColor].BackColor vbBlack
End If
If [tbl_Secteur_Doc_N°SecteurID] = "P86" Then [bteColor].BackColor
= RGB(255, 153, 0) Else [bteColor].BackColor = vbBlack
End If
If [tbl_Secteur_Doc_N°SecteurID] = "P98" Then [bteColor].BackColor
= RGB(255, 0, 0) Else [bteColor].BackColor = vbBlack
End If
If [tbl_Secteur_Doc_N°SecteurID] = "P99" Then [bteColor].BackColor
= RGB(0, 128, 128) Else [bteColor].BackColor = vbBlack
End If
End Sub

Y'a t'il une autre formule pour cela? Je ne sais plus! Mais je reste
positive, je suis sure que les experts en la matière sauront me
guider.

Je vous remercie à l'avance!

Jos ;)
Avatar
noemie_valy
bonjour à tous,

Alors, moi, j'ai un petit soucis, j'ai dans une table une colonne R
pour la couleur R, une colonne V pour V et une colonne B pour B.
J'affiche les controle correspondant dans un formulaire avec la
valeur.
Je voudrais dans mon formulaire en continu faire apparaitre soit un
sous formulaire, soit un control quelconque qui donnerait la couleur
en question.
Je réussi à mettre la couleur, mais pas par ligne. voici le code que
j'applique sur un control Couleur du formulaire en évènement :



Private Sub Couleur_Click()
Dim CouleurUtil As Long
Dim R As Long
Dim V As Long
Dim B As Long

R = Me!R.Value
V = Me!V.Value
B = Me!B.Value

CouleurUtil = RGB(R, V, B)
Me!Couleur.BackColor = CouleurUtil
End Sub



La seule chose qu'il fait s'est de mettre toute la colonne de la
couleur correspondant à la couleur de la ligne...
Comment faire pour afficher à l'ouverture du fourmulaire la couleur
correspondante pour chaque ligne?
Je ne sais pas si j'ai été très claire, mais pour résumer je veux v oir
la couleur correspondant aux données RVB que j'ai pour chaque
enregistrement.


Merci à tous,

Noémie
Avatar
Jessy Sempere
Bonjour

Je n'ai pas testé, mais essai d'appliquer ton code à l'événement "au
formatage" de la section détail du formulaire, je pense que ça devrait
fonctionner...

@+
Jessy Sempere
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
a écrit dans le message de news:

bonjour à tous,

Alors, moi, j'ai un petit soucis, j'ai dans une table une colonne R
pour la couleur R, une colonne V pour V et une colonne B pour B.
J'affiche les controle correspondant dans un formulaire avec la
valeur.
Je voudrais dans mon formulaire en continu faire apparaitre soit un
sous formulaire, soit un control quelconque qui donnerait la couleur
en question.
Je réussi à mettre la couleur, mais pas par ligne. voici le code que
j'applique sur un control Couleur du formulaire en évènement :



Private Sub Couleur_Click()
Dim CouleurUtil As Long
Dim R As Long
Dim V As Long
Dim B As Long

R = Me!R.Value
V = Me!V.Value
B = Me!B.Value

CouleurUtil = RGB(R, V, B)
Me!Couleur.BackColor = CouleurUtil
End Sub



La seule chose qu'il fait s'est de mettre toute la colonne de la
couleur correspondant à la couleur de la ligne...
Comment faire pour afficher à l'ouverture du fourmulaire la couleur
correspondante pour chaque ligne?
Je ne sais pas si j'ai été très claire, mais pour résumer je veux voir
la couleur correspondant aux données RVB que j'ai pour chaque
enregistrement.


Merci à tous,

Noémie
Avatar
motanova
Merci mais sur Access XP, je ne vois pas d'évènement "formatage" sur
la section détail. il n'y a que des clicks et autres double-clicks
....
Avatar
motanova
il y a un evènement formatage dans l'etat, mais là, mon code ne marche
pas... Bien évidemment.
Et je ne comprend pas pourquoi...
Une idée?
Merci à tous.