OVH Cloud OVH Cloud

mise en forme conditionnelle

3 réponses
Avatar
roger vandenberghe
bonjour,
dans un formulaire tableau, j'affiche l'emploi du temps d'une dizaine de
personnes <>, je voudrait mettre le champ nom d'une couleur <> selon la
personne, mais je ne peut pas utiliser la mise en forme conditionnelle, car
elle est limitée a 3, y a t-il un moyen en vba de faire ça ?
merci
roger

3 réponses

Avatar
Raymond [mvp]
Bonjour.

ce que tu appelles un formulaire tableau, est-ce un formulairee
tableaucroisédynamique, formulaire continu ou feuille de données ? car les
possibilités ne sont pas identiques ?

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"roger vandenberghe" a écrit dans le message de
news:407e1483$0$17504$
bonjour,
dans un formulaire tableau, j'affiche l'emploi du temps d'une dizaine de
personnes <>, je voudrait mettre le champ nom d'une couleur <> selon la
personne, mais je ne peut pas utiliser la mise en forme conditionnelle,
car

elle est limitée a 3, y a t-il un moyen en vba de faire ça ?
merci
roger




Avatar
Le méruvien
bonjour raymond, oui c'est un formulaire continu

"Raymond [mvp]" a écrit dans le message de
news: #
Bonjour.

ce que tu appelles un formulaire tableau, est-ce un formulairee
tableaucroisédynamique, formulaire continu ou feuille de données ? car les
possibilités ne sont pas identiques ?

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"roger vandenberghe" a écrit dans le message de
news:407e1483$0$17504$
bonjour,
dans un formulaire tableau, j'affiche l'emploi du temps d'une dizaine de
personnes <>, je voudrait mettre le champ nom d'une couleur <> selon la
personne, mais je ne peut pas utiliser la mise en forme conditionnelle,
car

elle est limitée a 3, y a t-il un moyen en vba de faire ça ?
merci
roger








Avatar
Raymond [mvp]
Bonjour.

dans ce cas, tu passes par une fonction dans laquelle tu testes toutes les
valeurs possibles de ton champ. Tu appelles cette fonction dans l'événement
Form_Current et dans l'AfterUpdate du champ pour le rafraichissement.
exemple:
Private Sub Form_Current()
Me.Client_N°.ForeColor = RGB(0, 0, 0)
Me.Client_Nom.ForeColor = RGB(0, 0, 0)
If Left(Me.Client_Nom, 1) = "A" Then
Me.Client_N°.ForeColor = RGB(255, 0, 0)
Me.Client_Nom.ForeColor = RGB(255, 0, 0)
Exit Sub
End If
If Left(Me.Client_Nom, 1) = "B" Then
Me.Client_N°.ForeColor = RGB(0, 255, 0)
Me.Client_Nom.ForeColor = RGB(0, 255, 0)
Exit Sub
End If
If Left(Me.Client_Nom, 1) = "C" Then
Me.Client_N°.ForeColor = RGB(0, 0, 255)
Me.Client_Nom.ForeColor = RGB(0, 0, 255)
Exit Sub
End If
If Left(Me.Client_Nom, 1) = "D" Then
Me.Client_N°.ForeColor = RGB(212, 208, 200)
Me.Client_Nom.ForeColor = RGB(212, 208, 200)
Exit Sub
End If

Tu peux passer aussi par un select case qui est plus élégant:

Private Sub Form_Current()
Me.Client_N°.ForeColor = RGB(0, 0, 0)
Me.Client_Nom.ForeColor = RGB(0, 0, 0)
Select Case Left(Me.Client_Nom, 1)
Case "A"
Me.Client_N°.ForeColor = RGB(255, 0, 0)
Me.Client_Nom.ForeColor = RGB(255, 0, 0)
Case "B"
Me.Client_N°.ForeColor = RGB(0, 255, 0)
Me.Client_Nom.ForeColor = RGB(0, 255, 0)
Case "C"
Me.Client_N°.ForeColor = RGB(0, 0, 255)
Me.Client_Nom.ForeColor = RGB(0, 0, 255)
Case "D"
Me.Client_N°.ForeColor = RGB(212, 208, 200)
Me.Client_Nom.ForeColor = RGB(212, 208, 200)
End Sub


--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Le méruvien" a écrit dans le message de
news:407f7010$0$20152$
bonjour raymond, oui c'est un formulaire continu