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

IHM Discussion :

PRB Mise en forme conditionnelle


Sujet :

IHM

  1. #1
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 77
    Points : 86
    Points
    86
    Par défaut PRB Mise en forme conditionnelle
    Bonjour,

    Je n'arrive pas a me sortir de mon problème.
    J'ai un sous formulaire en mode feuille de donnée basé sur une table de ma base

    J'ai besoin de mettre en forme conditionnelle de la manière suivante:
    Si ma colonne 3 a la valeur OUI :
    - L'enregistrement ne doit pas etre modifiable
    - Le parcours par tabulation doit etre possible
    - l'ecriture doit etre italique
    - La ligne doit garder sa couleur blanche

    Si ma colonne 3 a la valeur NON ou est vide:
    - L'enregistrement doit etre modifiable
    - Le parcours par tabulation doit etre possible
    - La ligne doit garder sa couleur blanche

    J'ai donc mis sur toutes mes colonnes une mise en forme conditionnelle sur expression:
    [colonne3]<>"NON" Et [colonne3]<> ""
    - Ecriture italique
    - Zone désactivé

    Le problème est donc quand ma zone est a "OUI"
    - la ligne est bloquée et donc le parcours par tabulation ne fonctionne pas
    - La couleur de la ligne devient grise, impossible de changer même si je lui indique dans ma condition que je veux du blanc

    J'ai essayer de faire ca en VB ( avec un parcours de tous mes controles):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ctl.FormatConditions.Add acExpression, , "[colonne3]<>" + Chr(34) + "NON" + Chr(34) + " Et [colonne3]<> " + Chr(34) + Chr(34)
    ctl.FormatConditions.Item(0).FontItalic = True
    ctl.FormatConditions.Item(0).Enabled = False
    ctl.FormatConditions.Item(0).BackColor = RGB(255, 255, 255)
    Le problème que lorsque l'on charge le sous formulaire, il ne prend en compte que la 1ere valeur de ma colonne 3
    - si c'est un oui, toutes mes lignes sont bloquées
    - sinon toute mes lignes sont modifiables, même celle a "OUI"

    Auriez vous une solution?

    Merci d'avance
    Sandrine

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 351
    Points : 23 816
    Points
    23 816
    Par défaut
    Pouquoi faire la mise en forme conditionnelle (couleur, police, couleur de fond) par code plutôt qu'avec l'interface ?

    Pour le verrouillage voici comment je procéderai :

    À mettre sur l'événement Current (sur ativation)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if me.[colonne3] = "NON" or me.[colonne3]="" then
       'Verrouille la ligne
       'ici mettre la proriété Locked à true pour tous les contrôles de saisie
      else
       'Déverrouille la ligne
       'ici mettre la proriété Locked à false pour tous les contrôles de saisie
    end if
    Sinon regarde si tu n'as pas l'option "zone verrouillée" plutôt que désactivée.

    Aussi regarde si tu ne pourrais pas changer l'odre de tes règles et garder celle qui verrouille pour la fin.

    A+

  3. #3
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 77
    Points : 86
    Points
    86
    Par défaut
    Citation Envoyé par marot_r Voir le message
    Pouquoi faire la mise en forme conditionnelle (couleur, police, couleur de fond) par code plutôt qu'avec l'interface ?
    Je l'ai fait par le code car par l'interface ca me bloque les tabulations, j'ai donc chercher a contourner le problème.

    J'ai essayer egalement le code que tu propose mais je l'avais mis sur Load du formulaire et du coup ca ne prenait en compte que la valeur de ma 1ere ligne ( comme pour la mise en fome conditionnelle par code).
    Je vais essayer en mettant sur current voir ce que cela donne

    Merci pour ton aide

    A bientot
    Sandrine

  4. #4
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 77
    Points : 86
    Points
    86
    Par défaut
    Impeccable ca fonctionne maintenant, mon erreur était donc que j'étais pas dans le bon evenement.

    Merci marot

    Pour ceux que ca pourrait intéresser, voici ce que j'ai obtenu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Private Sub Form_Current()
    Dim ctl As Control
    ' on verrouille/deverouille tous les controles en fonction de colonne3
    For Each ctl In Controls
        ' si le controle est une zone de texte ou une zone de liste
        If TypeOf ctl Is TextBox Or TypeOf ctl Is ComboBox Then
        'Debug.Print (ctl.Name)
            If Me.Colonne3 <> "NON" And Me.Colonne3 <> "" Then
                'Verrouille la ligne: ici mettre la proriété Locked à true pour tous les contrôles de saisie
                ctl.Locked = True
            Else
                'Déverrouille la ligne: ici mettre la proriété Locked à false pour tous les contrôles de saisie
                ctl.Locked = False
            End If
        End If
    Next ctl
    End Sub
    A bientot
    Sandrine

+ 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