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

Macros et VBA Excel Discussion :

[VBA-E]Problème avec des ToggleButton


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 33
    Points : 25
    Points
    25
    Par défaut [VBA-E]Problème avec des ToggleButton
    Hello tout le monde,

    Je voudrais vous poser une petite question : comment manipule-t-on les ToggleButton ?
    Après l'examen de l'aide sur Excel et un tour sur le net, je ne trouve pas ce qui me convient...

    J'ai deux boutons toggle sur une Form. Je voudrais que lorsque je clique sur l'un, l'autre change d'état. Je veux faire comme un interrupteur. Les deux boutons bascules sont initialement dans un état différent. Lorsqu'un bouton est enfoncé, je voudrais que l'autre remonte. Et lorsque l'on clique sur le bouton qui vient de remonter, et bien il s'enfonce et c'est le deuxième qui remonte, etc, etc.

    Apparemment simple, je ne m'en sors pas avec les événements Change() et Click() comme conseillé dans l'aide....Je ne suis même pas sur que la propriété à manipuler dans mon cas soit la togglebutton.value...

    Un peu de lumière serait appréciable si vous connaissez ....


    D'avance merci,

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 553
    Points : 566
    Points
    566
    Par défaut
    Essaie donc ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub ToggleButton1_Click()
    ToggleButton2.Value = Not ToggleButton1.Value
    End Sub
     
    Private Sub ToggleButton2_Click()
    ToggleButton1.Value = Not ToggleButton2.Value
    End Sub

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 33
    Points : 25
    Points
    25
    Par défaut
    Dans l'ordre :

    Tout d'abord merci de ta rapide réponse, helios77, tu es en passe de me sortir une deuxième fois de la m... cette semaine ! Et c'est horrible car il me semble que je pose des questions anodines et pourtant crois moi que c'est ces $@#!% de questions qui me bloquent de trop !

    Deuxièmement, je dois dire que le coup du "Not" de la value de l'autre bouton pour etre sur qu'ils ne sont jamais sur le même état est d'une ruse diabolique !! (Mais pourquoi n'y ai je pas pensé ? )

    Mais est ce que l'événement sur lequel je dois placer ce code est bien le Click() ? Le Change() ne serait il pas plus représentatif du changement d'état?

    Enfin je viens redemander une précision car ça ne marche pas mais c'est de ma faute : je n'ai pas expliqué la totalité de mon problème.
    J'ai une ListBox qui affiche l'état de présence d'une personne. Je cherche à modifier cet état.
    Pour cela j'ai deux toggle button (que j'appelle TBT) : "Présent" et "Absent". Lorsque je clique sur une ligne de ma ListBox, les deux TBT s'initialise à l'état : Si la ligne est Présent, le TBT Présent se baisse et le TBT Absent reste remonté. Si je clique sur une ligne Absent, vous êtes très fort, l'inverse se produit. Le problème (pour moi) vient du fait que je suis amené à cliquer sur ces boutons pour changer l'état de présence. Et là c'est la cata il ne veulent pas s'interchanger et le reste du déroulement est bugé....

    Désolé pour ce gros pavé, mais je veux rester clair car je suis sur que c'est enfantin...

    Des idées ?


    Encore merci !

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Alors tu n'as besoin que d'untoggleButton. Présent -> True, Absent -> False
    Pourquoi t'embêter avec deux ?
    A+

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 553
    Points : 566
    Points
    566
    Par défaut
    C'est vrai que 2 toggleButton, c'est juste pour lesthétique alor

    L'évenement que tu fais est bien un click() alors laisse l'évenement click en place....

    Ta ListeBox, comment-elle alimentée ???
    Sans doute la lecture de cellule de ta feuille Excel je suppose ...

    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
     
    Private Sub ToggleButton1_Click()
    ToggleButton2.Value = Not ToggleButton1.Value
    call traitement(ToggleButton1.Value)
    End Sub
     
    Private Sub ToggleButton2_Click()
    ToggleButton1.Value = Not ToggleButton2.Value
    call traitement(ToggleButton1.Value)
    End Sub
     
    Private Sub traitement(EstAbsent as boolean)
        If(EstAbsent) Then
               'traitement de l'absence
        Else 
             'traitenement de la présence
        End If
    End Sub
    Je te laisse voir dans quel cas y a bsence ou non, enfoncé ou pas enfoncé

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 33
    Points : 25
    Points
    25
    Par défaut
    Oui merci. Mais j'ai déjà vu ces groupes de contrôles, je les utilise pour des radiosbuttons où là je trouve l'utilisation des groupes de contôles cohérente. Mais je ne pensais pas que je devais les envisager pour mes TBT... A vrai dire, je cherchais absolument une autre solution, plus logique.
    Effectivement rien dans la FAQ pour ça et pas grand chose qui m'intéresse sur le net... C'est pour ca que je vous demande.

    Bon je vais creuser sous tes conseils du coté des frames et des regroupement de controles... Si tu as quelque chose, essaye de penser à moi ! Merci

  7. #7
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    et pourquoi ne pas utiliser un option bouton ..? (radio-bouton..)

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Regarde plutôt mon dernier message. Pour les groupes de contrôles, je ne l'ai jamais fait avec des "Toggle" mais avec des OptionButton. Je me suis paumé avec tous ces boutons
    Mais je pense toujours que tu n'as pas besoin de deux boutons...
    A+

    La situation d'un Toggle est réversible par soft. Vérifié !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ToggleButton1.Value = True
    En cas de besoin

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 33
    Points : 25
    Points
    25
    Par défaut
    Désolé pour le retard dans mes réponses mais j'ai dû faire avec une urgence...

    Je fais donc un post pour répondre à vos questions et continuer de vous étendre mon problème... (les chiants ils s'accrochent toujours !)

    Pourquoi 2 boutons alors qu'un seul peut convenir selon ouskel'n'or ?
    Je réponds oui et d'ailleurs je pensais me faire envoyer ballader quand j'ai posté pour la 1ère fois car c'est effectivement la réponse rapide, claire et concise que l'on peut donner à mon problème ! D'ailleurs j'ai commencé ma Form comme ça ! Mais c'est helios77 qui apporte la réponse :
    C'est vrai que 2 toggleButton, c'est juste pour lesthétique alor
    C'est uniquement pour des raisons d'esthétisme et d'ergonomie que je me prends la tête. Mais je souhaite faire l'effort car l'application ne va pas être utilisée par des gens familiarisés avec un ordinateur et par extension avec la technologie ! (Et sans être moqueur)
    Dans la même idée, c'est aussi pour cela que j'avais pris des Toggle Button, plus visible que des boutons radios.

    Pour ce qui est du code, je n'ai pas encore testé vos propositions, préférant vous répondre. Mais je dirais à ouskel'n'or que les TBT iraient sans doute bien dans des groupes de contrôles. En tout cas, ils semblent disposer à peu près des mêmes caractéristiques que les CheckBox et RadioButtons.. Mais... pas testé .... Je vais voir.

    Enfin pour répondre à helios77 sur la provenance de mes données... et bien je peux dire avec un peu de roublardise que toi tu sais d'où viennent les données !!! Le problème où tu m'as aidé est lié.
    Les données viennent d'un autre formulaire et sont passées à celui ci lors de l'instanciation. Lors de la construction de ce formulaire depuis le formulaire "parent", j'initialise ses variables directement. La ListView est initialisée avec un tableau de Variant par sa propriété .List. Les données du tableau ont été récupérées sur une feuille excel, mais ont subies pas mal de traitement avant d'arriver là. Disons simplement qu'elles sont dans un tableau.


    Dans tous les cas, je vous remercie de votre aide. Je pense avoir pas mal de billes pour chercher la solution en explorant vos pistes d'une part et d'autres part en gardant en tête que je peux revenir à beaucoup plus simple mais moins pratique (les boutons radios ou un seul toggle button). Et si je peine, je sais que je peux revenir vous enquiquiner !!!


    A oui et pour finir à ouskel'n'or : il est trop fort ton pseudo fallait le trouver !! Ca fait longtemps que je lis le forum en voyant tes messages et ca m'a toujours fait délirer !!

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 33
    Points : 25
    Points
    25
    Par défaut
    Bien j'ai repris mon code et vos idées...
    Pas de solution magique du lundi matin !!!

    Selon mes tests, le groupe de contrôles avec les TBT est à oublier... Pourtant j'en voulais avec mais ce n'est vraiment pas un gain dans la mesure où ces boutons ne se comportent en fait pas comme des radios buttons.

    Je me suis donc fait à l'idée d'abandonner mon interrupteur à bascule (les deux TBT) qui était bien visuel mais horrible à programmer pour ne mettre qu'un bouton. Mais je le vous dis franchement : un bouton dont le caption change lorsque l'on clique dessus, et ben je ne pense pas que ce soit très clair pour des gens qui ne connaissent pas. Ce n'est plus du tout visuel pour le coup !

    J'en suis donc logiquement arrivé à quelque chose qui correspond à mes problématiques d'ergonomie et qui est facilement programmable : les boutons radios !!! Voilà, je me suis cassé la tête mais j'en reviens à ce que bbil m'avait conseillé. Un cadre, deux boutons radios et c'est presque aussi bien que de changer le statut en appuyant sur des boutons qui restent enfoncés...
    Sniff je suis un peu triste quand même !!!

    En tout cas merci pour votre aide et votre patience !

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

Discussions similaires

  1. Problème avec des VBA
    Par TreborS dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 31/12/2014, 11h15
  2. Réponses: 6
    Dernier message: 20/02/2007, 17h00
  3. [VBA-E] Problème avec des dates !
    Par yaya54 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/03/2006, 13h12
  4. [STRUTS] Problème avec des ActionForm
    Par zarbydigital dans le forum Struts 1
    Réponses: 2
    Dernier message: 29/03/2004, 13h49
  5. Problèmes avec des vues
    Par dady dans le forum MFC
    Réponses: 22
    Dernier message: 09/01/2004, 16h26

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