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 :

aide pour commande sur ToggleButton [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2010
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 240
    Par défaut aide pour commande sur ToggleButton
    Bonjour

    j'ai plusieurs toggleButton et je cherche à faire en sorte qu'un seul d'entre eux soit à 1 et donc le reste à 0

    j'ai tenté avec cette commande mais ca fait planté le fichier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub SelectionnerModeleMultiModele_Change()
        For c = Support.Controls.Count - 1 To 0 Step -1
            If TypeName(Support.Controls(c)) = "ToggleButton" Then Support.Controls(c) = 0
        Next c
        SelectionnerModeleMultiModele = 1
    End Sub
    je précise que c'est un toggle crée en dynamique

    quelqu'un a une solution?

    merci

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu...!
    bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub ToggleButton1_Click()
    Dim control As Object ' variable object pour les controls
    'on boucles sur tout le controls
    For Each control In Me.Controls
    'si le nom du  control est différentde  "togglebutton1"
    If control.Name <> "ToggleButton1" Then
    'on met le control a false
    control = False
    End If
    Next
    End Sub
    tu n'a qua te faire une classe sur cet exemple

    et pour cela te baser sur mon exemple d'effet mouse in out dans les contributions si tu n'y arrive pas je te le ferais

    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonsoir,

    Je pense qu'il va falloir que tu te tourne vers des boutons d'option car avec un module de classe, chaque fois que tu mettras une valeur à False pour un bouton, l'évènement dans le module de classe sera à nouveau appelé mais bon, à voir. Si j'ai le temps, je fais un test demain.

    Hervé.

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2010
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 240
    Par défaut
    Bonjour et merci pour ta solution

    je viens de la tester avec une petite modification

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub SelectionnerModeleMultiModele_click()
        Dim control As Object
        For Each control In Support.controls
            If control.Name <> SelectionnerModeleMultiModele.Name _
                And TypeName(control) = "ToggleButton" Then
                control = False
            End If
        Next
    End Sub
    c'est déjà une bonne avancée mais il persiste un mauvais point.
    lorsque je clique sur un des boutons, les autres se deselectionnent (ok jusque la) mais le bouton cliqué ne reste pas selectionné.
    il faut que je reclique dessus pour le selectionner.
    Je pourrai me contenter de ca mais je pense qu'il est possible de résoudre ce probleme

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonjour
    c'est normal tu a fait une erreur!


    on recomence
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub SelectionnerModeleMultiModele_Click()
        Dim control As Object    ' variable object pour les controls
    'on boucles sur tout le controls
        For Each control In Me.Controls
            If TypeName(control) = "ToggleButton" Then
                'si le nom du  control est différent de  "SelectionnerModeleMultiModele"
                If control.Name <> "SelectionnerModeleMultiModele" Then
                    'on met le control a false
                    control = False
                End If
            End If
        Next
    End Sub
    j'ai tester ca fonctionne avec 10 togglebutton et plus donc tu maintenant ta base pour pouvoir faire ta classe

    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Membre éclairé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2010
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 240
    Par défaut
    Bonjour,

    je viens de regarder ta solution mais dans un module classe ca ne marche pas car à chaque changement d'etat le Sub se relance et donc fait que ca ne marche pas. mais j'ai trouvé une petite parade pour que ca fonctionne.

    je la met en dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    If FeinteChoixMultiModele = "" Then
        Dim control As control
        FeinteChoixMultiModele = SelectionnerModeleMultiModele.Caption
        For Each control In Support.controls
            If TypeName(control) = "ToggleButton" Then
                b = control.Caption
                If control.Caption <> SelectionnerModeleMultiModele.Caption Then control = False
            End If
        Next
        FeinteChoixMultiModele = ""
    End If
    le principe est de créer une variable public afin de faire une petite feinte au programme lol ^^

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/01/2015, 19h34
  2. [VBA-E] aide pour macro sur excel
    Par letoulouzin31 dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 24/05/2006, 11h29
  3. Besoin d'aide pour requête sur grosse table
    Par Fabouney dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/01/2006, 09h01
  4. aide pour requete sur 2 tables avec clé étranere
    Par richton95 dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/12/2005, 13h32
  5. [TP]besoin d'aide pour commandes inconnues
    Par Upal dans le forum Turbo Pascal
    Réponses: 15
    Dernier message: 03/10/2002, 10h48

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