IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Mise en forme conditionnelle ! [AC-2007]


Sujet :

Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 15
    Points : 17
    Points
    17
    Par défaut Mise en forme conditionnelle !
    Bonjour à tous.

    Voilà depuis plusieurs heures je bloque sur la mise en forme conditionnelle, je vais essayer d’être le plus clair possible ^^.

    Mon but : Sur un formulaire en mode continu, se serais après mise à jour d'un textbox, qui se trouve dans le pied de page, me positionner sur l'enregistrement qui correspond au numéros du textbox. Donc ca c'est ok. Ensuite il me faut changer la couleur du texte de la ligne active. J'arrive à le faire en sélectionnant mes contrôles puis en appliquant une mise en forme conditionnelle avec une expression, et la mon code fonctionne parfaitement.

    Vous allez me dire mais du coup c'est quoi le problème?

    En faites les formulaire dont je vous parle, sont crées dynamiquement, c'est à dire à chaque fois que l'utilisateur ouvre le formulaire, tout les contrôles sont écrasés, puis récréer. Jusque la tout vas bien. Mais je n'arrive pas à reproduire avec du code ce que j'arrive à faire avec les onglets access. J'arrive à affecter à chacun de mes contrôles la bonne mise en forme. Mais ceci ne s'active pas. Si je repasse en mode création, je vois que la mise en forme conditionnelle est bien présente, sur chacun des contrôles. Si je prend un des textbox que je fais appliquer, en ne changeant strictement rien à la mise en forme, mon test fonctionne.

    Donc j'ai l'impression que mon code affecte bien la mise en forme, mais ne l'active pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    controle(I).FormatConditions.add acExpression, , "[TXT_ORDN]=[txt_o] Et [TXT_Upp1]=[txt_u]"
            controle(I).FormatConditions.Item(0).FontBold = True
            controle(I).FormatConditions.Item(0).ForeColor = vbRed
    Autre hypothèse : Dans le cas de la mise en forme manuelle, j'ai sélectionné l'ensemble des contrôles qu'il me fallait, puis j'ai affecté une seul mise en forme. Alors que dans le code j'ai affecter plusieurs fois la même mise en forme sur chacun de mes contrôles.

    Je sais que c'est un peu compliqué, mais si quelqu'un à une idée, elle est la bien venu. Merci d'avance pour ceux qui aurons le courage de lire tout ca.

    Paix et amour !!!

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Bonjour.

    Oui moi aussi j'ai constaté que manipuler la mise en forme via le code ne donne pas les mêmes résultats que via l'interface.

    Essaye un truc tout bête : après la "recréation" de ton formulaire, ferme-le puis réouvre-le. Voit si cela active la mise en forme conditionnelle.

    Sinon il faudra peut-être te résoudre à avoir un formulaire "générique" avec tous les contrôles et à masquer les contrôles qui ne te servent pas.

    A+

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 15
    Points : 17
    Points
    17
    Par défaut
    Merci de la réponse rapide. ^^

    J'ai testé et ca ne fonctionne toujours pas. Je suis quand même assez convaincu que cela viens du fait que la mise en forme soit affecter contrôles par contrôles, et non pour l'ensemble des contrôles ... Malheureusement je commence à croire que cela n'est pas possible dans mon cas. Et je ne peux pas me résoudre à faire des formulaire "générique", cela voudrais dire créer plus d'une centaines de formulaire différents... Alors qu'actuellement il n'y en a qu'un seul (C'est quand même mieux ^^).

    Merci quand même, je vais essayer de trouver une solution intermédiaire. Il n'y à rien d'impossible en informatique, même pour access, on trouve toujours des solutions

    Bien sur si d'autres personnes ont des pistes pour moi, je suis toujours preneur.

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Autre idée : simuler l'usage de l'interface avec des docmd.RunCommand où au pire des SendKeys().

    Pour le formulaire "générique", je ne suis pas certain d'avoir été clair. Mon idée est la suivante :

    Soit 1 formulaire avec mettons :
    Champ1
    Champ2
    Champ3
    Champ4
    Champ5
    Champ6

    Quand tu ouvres le formulaire et selon tes conditions tu sais que tu n'as besoin que du Champ1, 2 et 6. donc à l'ouverture tu rends les champs 3,4,5 invisibles.
    Si tu veux faire plus luxueux tu redisposes aussi les contrôle pour "boucher" les trous.

    Tu as donc un affichage dynamique et toujours un seul formulaire.

    A+

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 15
    Points : 17
    Points
    17
    Par défaut
    C'est une idée, je vais me pencher dessus. Encore merci ^^ .

  6. #6
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 15
    Points : 17
    Points
    17
    Par défaut
    Au final, je me suis résolu à filtrer directement mon recordset sur la ligne voulu. Avec possibilité de ré-afficher tout avec un bouton. C'est pas ce que j'aurais voulu, mais ca suffiras pour le moment. ^^

    Merci bien.

    Paix et amour. <3

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. mise en forme conditionnelle et vba
    Par malabar92 dans le forum Access
    Réponses: 4
    Dernier message: 26/04/2006, 14h18
  2. Mise en forme conditionnelle
    Par the big ben 5 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 23/12/2005, 15h20
  3. [VBA][Excel] mise en forme conditionnelle
    Par titflocon dans le forum Access
    Réponses: 9
    Dernier message: 19/12/2005, 10h13
  4. Réponses: 4
    Dernier message: 15/11/2005, 18h53
  5. Mise en forme conditionnelle en VBA / Cut-Paste
    Par priest69 dans le forum IHM
    Réponses: 4
    Dernier message: 03/09/2005, 13h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo