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

VB 6 et antérieur Discussion :

Desactiver une checkBox d'une autre form.


Sujet :

VB 6 et antérieur

  1. #1
    Membre émérite
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Par défaut Desactiver une checkBox d'une autre form.
    Salut la compagnie.

    Voila je m'explique. Je developpe un control ActiveX, ce controle a une checkbox "option" qui ouvre un form dans laquelle j'ai introduis des onglets (Merci ZAZAraignée ) Ceux ci contiennent mes options, activation de plans, une palette de couleur....

    Lorsque je ferme cette form option, je veux que ma checkbox "option" de mon controle ActiveX passe en checkBox1.Enabled=False.

    Ce que j'ai deja fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    Private Sub Form_Unload(Cancel As Integer)
    CheckBox1.Enabled=False
    End Sub
    Fonctionne pas, normale j'ai deja une checkbox1 dans ma form.

    J'ai essayer aussi de remplacer CheckBox1 par UserControl1.CheckBox1, fonctionne pas.

    Et enfin j'ai essayer de créer dans mon module une fonction qui mets CheckBox1.Enabled=False mais ca ne fonctionne pas car CheckBox1 n'est pas connue dans mon module.

    Avez Vous des idées?

    Merci!
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Il me semble, si j'ai compris la question , que cela doit être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UserControl.Parent.CheckBox1.Enabled=False
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Par défaut
    montre nous la procédure d'appel / ouverture de ta form

  4. #4
    Membre émérite
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Par défaut
    Merci les gars.

    Dans mon user control j'ai ca pour ouvrir ou cacher la fenetre d'options.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Check1_Click()
    If Check1.Value = 1 Then
    Form1.Show
    Else
    Form1.Hide
    End If
    End Sub
    Dans ma form1 sus nommée j'ai ca pour la fermer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub Form_Unload(Cancel As Integer)
     
    Urender.RemoveActor Plx
    Urender.RemoveActor Ply
    Urender.RemoveActor Plz
    Urenwin.render

    Autrement dit j'ai rien dedans.... mis a part effacement des objet dans une fenetre 3D,et refresh de celleci.

    Et quand j'y ajoute ton code ProgElecT ca ne fonctionne pas VB me retourne RunTime Error 424 :Ogject Required
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  5. #5
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Check1_Click()
    If Check1.Value = 1 Then
        Form1.Show
    Else
        Form1.Hide
        Check1.enabled = false
    End If
    End Sub

  6. #6
    Membre émérite
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Par défaut
    Ro le boulet que je suis.

    Enfait je vous dit que je veux rendre le bouton non actif alors que ce n'est pas ca. je veux juste que lorsque je ferme ma form1 la valeur du checkBox de mon control passe a 0. Désolé les gars.

    En gros au lieu de
    CheckBox1.enabled=False
    je veux CheckBox1.Value=0

    Sorry!
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  7. #7
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    pour eviter l'erreur durant la creation du prog, ajouter un traitement de l'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    On Error Resume Next 'actif que durant l'execution du projet ou de l'exec
    UserControl.Parent.CheckBox1.Enabled=False
    If Err Then Err.Clear
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  8. #8
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Par défaut
    d'après ce que je vois, tu fermes "form1" en cliquant sur le checkbox.

    Or, cliquer sur un checkbox change (comportement automatique) sa valeur systématiquement.

    Donc pour moi tu cherches à faire ce qui est déjà fait

    ex : checkbox1.value = 1 tu montres la form
    checkbox1.value = 0 tu la fermes, ça parle tout seul non ?

    Si ton soucis est que tu souhaites inverser le comportement en fonction de la valeur alors il suffit de 1) inverser la valeur initiale dans les propriétés "value" du composant et 2) dans ton if du check1_click remplacer if check1.value = 1 par if check1.value = 0.

  9. #9
    Membre émérite
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Par défaut
    Merci c'est ce que je fais, mais ma checkBox est toujour coché... J'ai remplacer dans ton code, Check1.Enbled.... par Check1.value=0
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  10. #10
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Par défaut
    Non surtout pas !
    Changer la valeur d'une checkbox déclenche l'évènement "click" et tu risques de faire exploser ta stack

  11. #11
    Membre émérite
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Par défaut
    Non vlad,quand je coche sur ma checkbox, elle ouvre une form. Quand je reclic a nouveau dessus, la form ce cache.

    Mais si je clique sur la Croix pour fermer ma form, la valeur de la check box reste a 1, donc si je veux l'ouvrir a nouveau, je dois cliquer deux fois pour faire réapparaitre ma form.

    Est ce que tu vois ce que je veux faire.
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  12. #12
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Par défaut
    fallait le dire que tu fermais la form sans passer par le checkbox ..

    A quoi sert ton if check.value = 0 then form1.hide alors ???

    Ton programme est pas conçu pour selon moi, il faudrait que tu gardes la fenêtre visible après le .show :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Check1_Click()
    If Check1.Value = 1 Then
        Form1.Show
        while form1.visible
            doevents
        wend
        check1.value = 0
    End If
    End Sub
    Je pense que cela doit fonctionner.

  13. #13
    Membre émérite
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Par défaut
    Citation Envoyé par Vld44
    A quoi sert ton if check.value = 0 then form1.hide alors ???
    L'utilisateur, s'il le souhaite peut fermer sa form comme il a l'habitude de faire c-a-d avec la croix.

    Mais si il clic sur la checkBox options, une premiere fois la fait apparaitre, une seconde fois la cache, il peut a nouveau la faire revenir en cliquant de nouveau sur le check box


    Pour comprendre le malaise.

    Créer un nouveau projet avec deux forms et une checkbox sur la premiere, puis fait ca.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Check1_Click()
    If Check1.Value = 1 Then
    Form2.Show
    Else: Form2.Hide
    End If
    End Sub
    Si tu clic deux fois ta form2 apparait puis disparait. Si tu cliques sur la croix de Form2 la checkbox reste a 1. Moi je veux quel revienne a 0
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  14. #14
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Moi, y'a un truc que je n'ai pas encore démêlé:
    C'est quelle form, le Form1? -> le contrôle ActiveX lui-même ou sa boîte de dialogue Options?

  15. #15
    Membre émérite
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Par défaut
    Form1 est la Fenetre avec les Options
    Le control S'appel UserControl

    J'arrive a faire ce que je veux maintenant avec deux forms dont une est vide et l'autre a un checkBox

    Quant je ferme la seconde, la checkbox revient a Zero.

    Comment?Dans le Unload de la form2 j'ai mis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Form1.Check1.value=0
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  16. #16
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Par défaut
    hum ce n'est pas très propre mais bon si pour ce que tu fais ça convient

  17. #17
    Membre émérite
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Par défaut
    Ba c'est surtout que cette technique ne fonctionne pas avec un control ActiveX.

    C'est bien dommage. Mais je vais passer a autre chose. Au pire je desactive la croix sur la fenetre d'option.
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  18. #18
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    [Mauvais conseil !]À mon avis, tu devrais plutôt y aller avec ceci

    UserControl.Check1.Value = 0
    [/ très très mauvais conseil...]


    Citation Envoyé par Vld44
    hum ce n'est pas très propre mais bon si pour ce que tu fais ça convient
    +1

    Je crois que laisser les nom par défaut n'est pas une bonne idée. Vaut toujours mieux renommer les composants avec des noms explicites (qui informe sur leur utilité).

    Pour ton problème, je fait quelques tests...

  19. #19
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Un autre truc dont je ne comprends pas la logique:

    Pourquoi un CheckBox affiche-t-il une boîte de dialogue? L'usage d'un bouton (qui retrouve son état initial par lui-même) ne serait-il pas plus approprié?

  20. #20
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    J'arrive peut être en retard, j'avais mal compris la question.
    En voyant les reponse et les precision, voici un code qui fonctionne,

    Citation Envoyé par parp1
    Pour comprendre le malaise.

    Créer un nouveau projet avec deux forms et une checkbox sur la premiere, puis fait ca.
    Code :
    Private Sub Check1_Click()
    If Check1.Value = 1 Then
    Form2.Show
    Else: Form2.Hide
    End If
    End Sub

    Si tu clic deux fois ta form2 apparait puis disparait. Si tu cliques sur la croix de Form2 la checkbox reste a 1. Moi je veux quel revienne a 0
    J'ai fait sa:
    dans la Form1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Check1_Click()
    If Check1.Value = 1 Then
     Form2.Show
     Else
     Form2.Hide
    End If
    End Sub
    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    On Error Resume Next
    Unload Form2
    If Err Then Err.Clear
    End Sub
    dans la Form2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    If UnloadMode = 0 Then
    'L'utilisateur a choisi dans le menu Système de la feuille
    'la commande Fermeture.
     Form1.Check1.Value = 0
    End If
    End Sub
    Il me semble que c'est ce que tu veux, ou alors là, je vous laisse tranquille ..., je m'eclipse ..., je me cache .....
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  2. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  3. comment avoir une valeur d'une form1 dans un autre form
    Par sabrina_beautyful dans le forum Windows Forms
    Réponses: 3
    Dernier message: 18/05/2009, 14h53
  4. afficher une valeur sur une feuille lorsqu'une checkbox est cochée
    Par chrnoe dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/12/2008, 14h39
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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