Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/05/2011, 08h28   #1
Nouveau Membre du Club
 
Homme Marc Bellêtre
Étudiant
Inscription : mars 2011
Messages : 59
Détails du profil
Informations personnelles :
Nom : Homme Marc Bellêtre
Âge : 20
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2011
Messages : 59
Points : 26
Points : 26
Par défaut Mise en forme conditionnelle en VBA

Bonjour,

Je me tourne vers vous car je n'arrive pas à résoudre un problème qui semble assez bête, finalement. J'ai, dans mon formulaire principal, un sous-formulaire composé de plusieurs champs dont un champ "Code" qui utilise une mise en forme conditionnelle. Initialement, les conditions de mise en forme étaient les suivantes : vert si txtCouleur=V, rouge si txtCouleur=R, orange si txtCouleur=O ou jaune dans tous les autres cas. Pas de soucis à ce niveau.
Le problème est survenu lorsque le sujet a légèrement changé. La couleur standard doit finalement être blanche et le champ doit être jaune si txtCouleur=J. Nous avons maintenant quatre conditions qui sont donc impossible à mettre en place puisqu'Access 2007 n'accepte que trois conditions.
J'ai trouvé une solution sur internet nécessitant des installations supplémentaires mais cela est bien trop complexe et m'obligerait à modifier beaucoup trop d'éléments. Je ne peux pas me le permettre puisque je dois boucler cet application très vite.

J'ai donc trouvé un début de solution qui pourrait s'adapter à mon cas. Le code couleur n'est en fait valable que sur certaines fiches (le sous-formulaire est alimenté par une requête créée via VBA lorsque l'on sélectionne un élément dans une liste). Pour les fiches "Accueil", "TC", "Général Atelier 1" et "Général Atelier 2", il faut appliquer le code couleur. Autrement, les cases doivent rester blanches.

J'ai donc mis au point ce début de code, qui est exécuté lors de la mise à jour de ma liste, après le changement de requête :
Code :
1
2
3
4
5
6
7
8
9
10
' S'il s'agit d'une fiche de poste, on supprime le code couleur
If rstNomFiche("INTITULE") <> "Accueil" And rstNomFiche("INTITULE") <> "TC" _
        And rstNomFiche("INTITULE") <> "Général Atelier 1" And rstNomFiche("INTITULE") <> "Général Atelier 2" Then
    Me.sfElementsFPOp.Form.txtCode.BackColor = 16777215
' Sinon, on met en place la mise en forme conditionnelle
Else
    Me.sfElementsFPOp.Form.txtCode.BackColor = RGB(255, 255, 0)
    Me.sfElementsFPOp.Form.txtCode.FormatConditions.Add acExpression, , "[txtCouleur]=V"
    Me.sfElementsFPOp.Form.txtCode.FormatConditions.Item(0).BackColor = RGB(0, 255, 0)
End If
J'obtiens l'erreur suivante sur la ligne Me.sfElementsFPOp.Form.txtCode.FormatConditions.Add acExpression, , "[txtCouleur]=V" :
"Erreur 7966 : Le paramètre que vous avez entré est trop élevé."

Le reste du code fonctionne puisque je l'ai testé sans le Else et avec la mise en forme conditionnelle que j'avais initialement. Le soucis, c'est que lorsqu'aucune des conditions n'était respectée pour les fiches nécessitant un code couleur, le champ s'affichait ne s'affichait pas en jaune mais en blanc. Pour les autres, aucun problème.

J'attends vos idées. Merci !

Cordialement,
Prettyletter
Prettyletter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 09h24   #2
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 411
Points : 14 411
Envoyer un message via Skype™ à Pierre Fauconnier
Salut.

Pas testé, mais je serais tenté de dire
Code :
Me.sfElementsFPOp.Form.txtCode.FormatConditions.Add acExpression, , "[txtCouleur]=""V"""
C'est-à-dire qu'il faut encadrer V avec des guillemets, qui sont doublés car au sein d'une chaine de caractères.
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 09h31   #3
Nouveau Membre du Club
 
Homme Marc Bellêtre
Étudiant
Inscription : mars 2011
Messages : 59
Détails du profil
Informations personnelles :
Nom : Homme Marc Bellêtre
Âge : 20
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2011
Messages : 59
Points : 26
Points : 26
Merci pour ta réponse.
Malheureusement, j'avais testé, je viens de réessayer mais le problème ne vient pas de là. J'ai toujours la même erreur...
Prettyletter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 09h58   #4
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 411
Points : 14 411
Envoyer un message via Skype™ à Pierre Fauconnier
Si tu ne vides pas la collection des MFC, tu auras ce message après l'ajout de la troisième condition.
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 10h10   #5
Nouveau Membre du Club
 
Homme Marc Bellêtre
Étudiant
Inscription : mars 2011
Messages : 59
Détails du profil
Informations personnelles :
Nom : Homme Marc Bellêtre
Âge : 20
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2011
Messages : 59
Points : 26
Points : 26
D'accord, j'ai bien compris le problème. Le code fonctionne, sauf qu'au bout de la troisième sélection dans la liste j'ai ce message d'erreur car les conditions s'ajoutent. Existe-t-il une commande pour vider la collection avant de la remplir à nouveau?
Prettyletter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 10h21   #6
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 411
Points : 14 411
Envoyer un message via Skype™ à Pierre Fauconnier
Il s'agit d'une collection. Elle se vide avec Delete

Code :
Texte0.FormatConditions.Delete
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 10h40   #7
Nouveau Membre du Club
 
Homme Marc Bellêtre
Étudiant
Inscription : mars 2011
Messages : 59
Détails du profil
Informations personnelles :
Nom : Homme Marc Bellêtre
Âge : 20
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2011
Messages : 59
Points : 26
Points : 26
Super, c'est exactement ce qu'il me fallait ! Merci beaucoup =)
A bientôt !
Prettyletter est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h35.


 
 
 
 
Partenaires

Hébergement Web