Select case - fonctionnement sur le formulaire

mammoutheau Messages postés 2 Date d'inscription jeudi 12 mars 2009 Statut Membre Dernière intervention 17 juillet 2009 - 13 juil. 2009 à 20:31
mammoutheau Messages postés 2 Date d'inscription jeudi 12 mars 2009 Statut Membre Dernière intervention 17 juillet 2009 - 14 juil. 2009 à 10:31
Bonjour,

j'ai un petit problème concernant la prise en compte par le formulaire de mon code vba pour une instruction select case.
En résumé, j'ai 5 classes avec 10 élèves. Mes 50 enregistrements apparaissent sur mon formulaire. Je souhaiterais que le champs [classe] apparaisse en rouge pour la classe n°1, en vert pour la n°2, en jaune pour la n°3... dès l'ouverture du formulaire.

Voici le code que j'ai inséré, dans la propriété du formulaire, onglet évenement, sur activation :

Private Sub Form_Current()
Select Case Me.Classe
Case 1
Classe = 1
Me.Classe.BackColor = vbRed
Case 2
Classe = 2
Me.Classe.BackColor = vbGreen
Case 3
Classe = 3
Me.Classe.BackColor = vbYellow
...
End Select
End Sub

A l'ouverture du formulaire, toutes les valeurs de mon champ [classe] sont rouge. Si je sélectionne un élève de la classe n°2, toutes les valeurs du champ [classe] passe au vert, idem pour le jaune !

Je souhaiterais que la condition s'applique à chaque champ dès l'ouverture du formulaire pour favoriser une bonne vision des classes. En fin de compte, je souhaiterais que cela fonctionne comme "une mise en forme conditionnelle", mais pour 5 voire 10 cas.

Merci.

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
13 juil. 2009 à 20:50
Salut
Tu travailles sur quoi : Excel, Access ?
Que représente "Me.Classe" ?
Que représente "Classe" tout seul
Si ce sont deux objets différentes, il y a surement un problème de compilation.
Si tu es sous Excel, il faudra peut-être sélectionner la cellule ou le Range auquel doit s'appliquer les BackColor.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
mammoutheau Messages postés 2 Date d'inscription jeudi 12 mars 2009 Statut Membre Dernière intervention 17 juillet 2009
14 juil. 2009 à 10:31
Salut,

je travaille sous access.
select case me.classe : je précise que mon choix portera sur le champ "classe". Me. me permet de choisir le champ sur le formulaire en cours. Mais cela fonctionne aussi si j'avais écrit "select case classe" (testé).

classe tout seul représente le champ avec la condition que je pose. Classe =1 champ couleur rouge, 2 = vert, 3 = jaune.
Il s'agit bien du même champ.

Précision, les "..." dans le code ci dessus sont là uniquement pour préciser que je souhaite rajouter des conditions. Ils n'apparaissent pas, bien entendu, dans mon code.

Cela fonctionne dans le sens ou lorsque le formulaire s'affiche, le champ classe prend la couleur rouge mais cela pour toutes les valeurs qui apparaissent en colonne classe (que se soit 1, 2 ou 3). Ensuite, dès que je clic dans le champ classe du formulaire ou la valeur classe = 2, toutes les valeurs du champ classe passent au vert. Ainsi de suite pour les autres couleurs.
Ce que je souhaiterais, c'est qu'a l'ouverture du formulaire, le champ classe apparaisse en rouge lorsque classe 1, en vert lorsque classe 2, etc. Cela améliorerais la lisibilité du formulaire. En utilisant "mise en forme conditionnelle" cela fonctionne jusqu'à 4 conditions et cela te permet de comprendre le résultat que je souhaite. Je voudrais l'appliquer pour un nombre supérieur et il n'y a que le VBA pour m'aider.

C'est cela que je n'arrive pas à faire. Mais est-il possible de le faire ?

Merci de ta patience.
0
Rejoignez-nous