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 :

Masquer un bouton sur 2 conditions [AC-2003]


Sujet :

IHM

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 12
    Points : 10
    Points
    10
    Par défaut Masquer un bouton sur 2 conditions
    Bonjour à tous,

    J'ai crée un formulaire principal sur lequel j'ai une chkbox. Celle-ci doit rendre invisible un bouton de commande et un sous formulaire. Jusque là pas de problème.
    Je place le code suivant sur Activation du formMain() et sur chkBoxA_afterUpdate()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub HiddenButon()
    If chkBoxA = True Then
    Me.button.Visible = False
    Me!fsubForm.Visible = False
    ElseIf chkBoxA = False Then
    Me.button.Visible = True
    Me!fsubForm.Visible = True
    End If
    End Sub
    Le problème vient lorsque je souhaite ajouter la condition suivante:
    si dans le fsubForm une 2eme chkBoxB = True il faut que que lorsque chkBoxA = False donne Me.button.Visible = False

    J'ai essayé de mettre sur chkBoxB_AfterUpadte et sur activation du fsubForm le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    If chkBoxB = true Then
    Forms!formMain.button.Visible = False
    ElseIf chkBoxB = False Then
    Forms!formMain.button.Visible = True
    1)Cela marche sur ouverture du formMain chkBoxA = False par défaut
    2)lorsque chkBoxA= True, bouton et subform sont invisibles condition OK
    3)lorsque désactive 2e fois chkBoxA, subform est visible mais bouton reste invisible si chkBoxB = False

    Merci à ceux qui pourront éclairer ma lanterne hi!


  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 917
    Points
    281 917
    Par défaut
    Bonjour,

    Pas facile de te suivre !

    Tu as donc un formulaire principal FormMain avec ChkBoxA et
    un sub form fsubForm avec ChkBoxB.

    Peux-tu expliquer ce que tu veux produire comme effet
    - à chaque activation de FormMain
    - au changement de position de ChkBoxA
    - au changement de position de ChkBoxB

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Bonjour Claude,

    Ok, voici 3 printScreen pour expliquer mon problème. Si tu as besoin d'un éclaircissement ou le code en situation je suis à ta disposition.
    Comme expliqué sur les images c'est quand on reclique (toggle) sur chkBoxA, il ne revient pas dans la même config. (manque bouton)
    En sachant que si chkBoxB est true le bouton ne doit pas apparaître.

    Merci d'avance

    elyan,

    ps: prends dans l'ordre les printscreen 10, 11, 12

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 917
    Points
    281 917
    Par défaut
    Vérifie que les noms de contrôles sont corrects

    voici le code associé à FormMain
    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
    18
    19
    20
    21
    22
    23
    24
    25
    Option Compare Database
    Option Explicit
     
     
    Private Sub ChkBoxA_AfterUpdate()
    AménagerBouton
    End Sub
     
    Private Sub Form_Current()
    AménagerBouton
    End Sub
     
    Public Sub AménagerBouton()
    If Me.ChkBoxA = -1 Then
      Me.fsubForm.Visible = False
      Me.Bouton.Visible = False
    Else
      Me.fsubForm.Visible = True
        If Me.fsubForm!ChkBoxB = -1 Then
          Me.Bouton.Visible = True
        Else
          Me.Bouton.Visible = False
        End If
    End If
    End Sub

    et le code Après MàJ de chkBoxB
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ChkBoxB_AfterUpdate()
    Call Form_FormMain.AménagerBouton
    End Sub
    Reviens si problème.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Bonsoir Claude,
    merci de la réponse rapide.
    Je viens de tester ton code. Si chkBoxA est False et chkBoxB False le bouton n'apparait pas. Par contre il apparaît lorsque chkBoxB = True c'est l'inverse de ce que je souhaite. Je vais vérifier demain le code.

    voici la procédure sur chkBoxA (chkNoRental) AfterUpdate et Activation Mainform

    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
    18
    19
    20
    21
    22
    23
     
    Public Sub ChangeLblNoRental()
    'Pour changer la couleur et contenu des étiquettes associées à une case à cocher
     
    If Me.chkNoRental = -1 Then   'Ici test sur chkBoxA dans MainForm
        Me.LblNoRental.ForeColor = vbRed
        Me.LblNoRental.Caption = "Uniquement à consulter sur place"
        Me.LstRentalFixedValue.Visible = False
        Me.fsubRental.Visible = False
        Me.cmbPretBook.Visible = False
    Else
        Me.fsubRental.Visible = True
        Me.LblNoRental.ForeColor = vbBlue
        Me.LblNoRental.Caption = "Sortie biblio autorisée"
        Me.LstRentalFixedValue.Visible = True
     
        If Me.fsubRental!chkBorrowed = -1 Then 'Ici test sur chkBoxB du fsub 
            Me.cmbPretBook.Visible = True
        Else
            Me.cmbPretBook.Visible = False
        End If
    End If
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub chkNoRental_AfterUpdate()
    ChangeLblNoRental
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Form_Current()
    ChangeLblNoRental
    End Sub
    ci-dessous la procédure de la chkBox B dans fsubRental

    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
    18
    19
     
    Sub ChangeColor()
    'Pour changer la couleur et contenu de l'étiquette associée à une case à cocher chkBox B
     
    If Me.[chkBorrowed] = -1 Then
        Me.LblBorrowed.ForeColor = vbRed
        Me.LblBorrowed.Caption = "Livre emprunté"
        Me.txtAghbNr.Visible = True
        Me.txtLastName.Visible = True
        Me.txtFirstName.Visible = True
     
    ElseIf Me.[chkBorrowed] = False Then
        Me.LblBorrowed.ForeColor = vbBlue
        Me.LblBorrowed.Caption = "Disponible en biblio."
        Me.txtAghbNr.Visible = False
        Me.txtLastName.Visible = False
        Me.txtFirstName.Visible = False
    End If
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub chkBorrowed_AfterUpdate()
    ChangeColor
    Call frmDescriptifLivre.ChangeLblNoRental   'Appel de la sub venant de ChkBoxA du MainForm
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Form_Current()
    ChangeColor
    End Sub

    autre petite question, vaut-il mieux utiliser -1 que True pour une chkBox
    ou une chkBox est une tristate -1, True, False ?
    Encore merci pour le temps que tu consacres à élever le niveau des utilisateurs d'access .
    elyan,

  6. #6
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 917
    Points
    281 917
    Par défaut
    Bonjour elyan,

    J'ignore s'il y a une différence. J'utilise indifférement
    true = -1
    false = 0

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Bonjour Claude,

    Ok pour -1 = True et 0 = False

    Voila j'ai du remanier le code que tu m'as proposé comme suit pour que cela marche :
    sur chkBoxA

    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
    18
    19
    20
    21
    22
    23
    24
     
    Public Sub ChangeLblNoRental()
    'Pour changer la couleur et contenu des étiquettes associées à une case à cocher
     
    If Me.chkNoRental = True Then   ' test chkBoxA
        Me.LblNoRental.ForeColor = vbRed
        Me.LblNoRental.Caption = "Uniquement à consulter sur place"
        Me.LstRentalFixedValue.Visible = False
        Me.fsubRental.Visible = False
        Me.cmbPretBook.Visible = False
     
    ElseIf Me.chkNoRental = False Then
        Me.fsubRental.Visible = True
        Me.LblNoRental.ForeColor = vbBlue
        Me.LblNoRental.Caption = "Sortie biblio autorisée"
        Me.LstRentalFixedValue.Visible = True
     
          If Me.fsubRental!chkBorrowed = True Then
              Me.cmbPretBook.Visible = False
          Else
           Me.cmbPretBook.Visible = True
        End If
    End If
    End Sub
    et suppression du CALL sur chkBoxB

    Encore merci pour l'éclairage que tu m'as apporté (If then dans un If then pour introduire 2e condition) pas pensé à ça....pifff

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

Discussions similaires

  1. [XL-2007] Activer désactiver bouton sur feuille avec condition
    Par cathodique dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/09/2013, 07h22
  2. Masquer des lignes sur condition
    Par marc56 dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 06/03/2008, 02h11
  3. Détruire un bouton sur son OnClick
    Par Volfoni dans le forum C++Builder
    Réponses: 5
    Dernier message: 08/06/2006, 12h00
  4. Quatrième bouton sur la barre de titre d'une fenêtre
    Par Yacine95000 dans le forum MFC
    Réponses: 8
    Dernier message: 02/06/2004, 17h54
  5. Afficher/Masquer un bouton comme IE 6
    Par benj63 dans le forum C++Builder
    Réponses: 3
    Dernier message: 29/07/2002, 13h12

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