OVH Cloud OVH Cloud

mise en forme conditionnelle par VBA

1 réponse
Avatar
memarc67
bonjour,
je cherche =E0 mettre en valeur deux champs en fonction de la valeur
d'un troisi=E8me, notamment en changeant la couleur du fond et
=E9ventuellement la couleur de l'=E9criture. Bien s=FBr on peut utiliser
la mise en forme conditionnelle (menu FORMAT puis MISE EN FORME
CONDITIONNELLE), mais elle est limit=E9e =E0 trois conditions et il
faudrait que je puisse en utiliser au moins cinq.
Ma question est de savoir si par VBA il y aurait moyen d'y rem=E9dier
sachant qu'il s'agit d'un sous-formulaire en continue qui devrait =EAtre
trait=E9. J'ai d=E9j=E0 essay=E9 en mettant la formule suivante dans le
formatage du formulaire (SUR ACTIVATION) et cel=E0 fonctionne mais pas
correctement. En effet, lorsqu'une des conditions re=E7oit le focus,
tous les champs prennent la m=EAme couleur alors que je souhaiterais
avoir une couleur diff=E9rente pour chaque condition. J'esp=E8re m'=EAtre
exprim=E9 de fa=E7on =E0 =EAtre compris.
Le code entr=E9 dans le formulaire SUR ACTIVATION est le suivant :

Private Sub Form_Current()
DoCmd.Maximize

Select Case [NOM DU CHAMP]
Case Is =3D 0
Me.NOM DU CHAMP.Visible =3D True
Me.NOM DU CHAMP.BackColor =3D 16719904
Me.NOM DU CHAMP.ForeColor =3D 16777215
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70

CASE is >0
Me.NOM DU CHAMP.Visible =3D True
Me.NOM DU CHAMP.BackColor =3D 16719904
Me.NOM DU CHAMP.ForeColor =3D 16777215
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70

End Select
End Sub

Merci d'avance pour les =E9ventuelles solutions.

1 réponse

Avatar
ze Titi
Bonjour

Les formulaires en mode continu ont des limites qu'il est difficile de
vaincre. J'avais trouvé il y a quelques temps un tutoriel permettant
d'en repousser certaines. Je t'en suggère la lecture. Si ça peut te
donner une piste de travail, ça sera toujours ça de gagné. A défaut, ça
peut toujours être utile...

http://cafeine.developpez.com/access/tutoriel/pseudocontinu/


Dans ton message
bonjour,
je cherche à mettre en valeur deux champs en fonction de la valeur
d'un troisième, notamment en changeant la couleur du fond et
éventuellement la couleur de l'écriture. Bien sûr on peut utiliser
la mise en forme conditionnelle (menu FORMAT puis MISE EN FORME
CONDITIONNELLE), mais elle est limitée à trois conditions et il
faudrait que je puisse en utiliser au moins cinq.
Ma question est de savoir si par VBA il y aurait moyen d'y remédier
sachant qu'il s'agit d'un sous-formulaire en continue qui devrait être
traité. J'ai déjà essayé en mettant la formule suivante dans le
formatage du formulaire (SUR ACTIVATION) et celà fonctionne mais pas
correctement. En effet, lorsqu'une des conditions reçoit le focus,
tous les champs prennent la même couleur alors que je souhaiterais
avoir une couleur différente pour chaque condition. J'espère m'être
exprimé de façon à être compris.
Le code entré dans le formulaire SUR ACTIVATION est le suivant :

Private Sub Form_Current()
DoCmd.Maximize

Select Case [NOM DU CHAMP]
Case Is = 0
Me.NOM DU CHAMP.Visible = True
Me.NOM DU CHAMP.BackColor = 16719904
Me.NOM DU CHAMP.ForeColor = 16777215
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70

CASE is >0
Me.NOM DU CHAMP.Visible = True
Me.NOM DU CHAMP.BackColor = 16719904
Me.NOM DU CHAMP.ForeColor = 16777215
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70

End Select
End Sub

Merci d'avance pour les éventuelles solutions.


--
Voilou !
Bon courage !
Cordialement,
ze Titi