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 :

Boucle sur CheckBox, OptionButton


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Architecte matériel
    Inscrit en
    Janvier 2013
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte matériel
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2013
    Messages : 113
    Points : 96
    Points
    96
    Par défaut Boucle sur CheckBox, OptionButton
    Bonjour,

    Alors voilà, j'ai pas mal cherché mais je n'ai pas vraiment trouver de réponses concrètes à mon problème.
    En gros, une UserForm est générée, ensuite en fonction du nombre de cas, cela génère des "lignes" identiques (seul le nom du cas change)
    Je dis ligne pour simplifier mais chaque ligne comporte
    - une checkbox
    - le nom du cas
    - 2 OptionButton (avec le label associé)
    Les "lignes" sont générées par une boucle For, leur nom dépendent de l'incrément i

    Dans l'idéal, j'aimerais précocher la checkbox par défaut (ça c'est bon), ensuite si elle est décochée, je voudrais que les 2 OptionButton soient décochées et désactivées et que le texte de cette ligne soit grisé.
    J'ai essayé pas mal de truc pour l'incrément, mais à chaque fois cela me renvoie une erreur.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    '    For i = 1 To Nbseq
    '                If UserForm3.Controls("CheckboxAct" & i).Value = False Then
    '                    UserForm3.ActiveControl("OptionButtonTd" & i).Value = False
    '                    UserForm3.ActiveControl("OptionButtonTd" & i).Enable = True
    '                    UserForm3.OptionButtonTrTnd(i).Value = False
    '                    UserForm3.OptionButtonTrTnd(i).Enable = True
    '                    UserForm3.LabelTd(i).Color = &H8000000F
    '                    UserForm3.Label(i).Color = &H8000000F
    '               End If
    '    Next i
    Si vous avez une solution, ou une piste pour résoudre, je vous en serait reconnaissant.
    Cordialement

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    Ce serait bien de connaître le numéro et la description de l'erreur pour mieux t'aider.
    Dans le cas d'OptionButton, il faut, en principe, que l'un ou l'autre d'une série soit sélectionné.
    Peut-être est-ce là la source d'erreur (?)

    Tu pourrais simplement les désactivé (Enabled = False), ce qui les grisera.
    Pour la partie du code, plutôt que de vérifier si l'un ou l'autre est coché, tu pourrais vérifier s'ils sont Enabled = True

  3. #3
    Membre régulier
    Homme Profil pro
    Architecte matériel
    Inscrit en
    Janvier 2013
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte matériel
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2013
    Messages : 113
    Points : 96
    Points
    96
    Par défaut
    Bonjour,
    Merci pour ta réponse.

    Erreur de Compilation
    Membres de méthode ou données introuvables
    En fait j'ai besoin de les décocher, car si ils sont cochés le calcul suivant va les prendre en compte, ce que je ne souhaite pas.

  4. #4
    Membre actif
    Homme Profil pro
    Pompier de service
    Inscrit en
    Février 2014
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Pompier de service

    Informations forums :
    Inscription : Février 2014
    Messages : 144
    Points : 223
    Points
    223
    Par défaut
    Est-ce que ça pourrait répondre à ton attente ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim bEtat As Boolean
     
        For i = 1 To Nbseq
            With UserForm3
                bEtat = .Controls("CheckboxAct" & i).Value
                .Controls("OptionButtonTd" & i).Value = bEtat
                .Controls("OptionButtonTrTnd" & i).Value = bEtat
                .Controls("OptionButtonTd" & i).Enabled = bEtat
                .Controls("OptionButtonTrTnd" & i).Enabled = bEtat
                .Controls("LabelTd" & i).Enabled = bEtat
           End With
        Next i

  5. #5
    Membre régulier
    Homme Profil pro
    Architecte matériel
    Inscrit en
    Janvier 2013
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte matériel
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2013
    Messages : 113
    Points : 96
    Points
    96
    Par défaut
    Si j'ai bien compris ce que tu me proposes, ton code va juste regarder la valeur (true ou false) des boutons?
    Pour le moment j'ai plus ou moins contourné le problème en créant un troisième OptionButton au lieu d'un Chexbox qui active ou non les deux autres (ceci pour chaque ligne). Mais c'est moins top pour l'esthétique de la UserForm.

    Merci pour ta proposition

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Si tu veux pouvoir désactiver les 2 OptionButtons, pourquoi ne pas utiliser que des CheckBox ?
    Lorsque tu décoches Controls("CheckboxAct" & i), tu décoches les 2 autres systématiquement...

  7. #7
    Membre régulier
    Homme Profil pro
    Architecte matériel
    Inscrit en
    Janvier 2013
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte matériel
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2013
    Messages : 113
    Points : 96
    Points
    96
    Par défaut
    En gros le programme crée un liste de cas.
    Pour chaque cas on va effectuer un calcul suivant OptionButton1 ou OptionButton2 mais si la Chexbox est désactiver le calcul ne s'effectue pas.

    ça se présente comme ça : je ne sais pas si c'est explicite :
    Checkbox Cas 1 OptionButton1 OptionButton2
    Checkbox Cas 2 OptionButton1 OptionButton2
    Checkbox Cas 3 OptionButton1 OptionButton2
    .
    .
    .
    Checkbox Cas i OptionButton1 OptionButton 2

  8. #8
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Je ne sais plus où tu en es avec ton erreur, mais ici ça devrait s'écrire Enabled et non pas Enable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UserForm3.ActiveControl("OptionButtonTd" & i).Enable = True

  9. #9
    Membre régulier
    Homme Profil pro
    Architecte matériel
    Inscrit en
    Janvier 2013
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte matériel
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2013
    Messages : 113
    Points : 96
    Points
    96
    Par défaut
    En fait j'ai un gros code à débugger.
    Mais je ne l'ai pas sur mon pc, donc j'écris des trucs de mémoire ^^
    Je comprends que du coup ça ne facilite pas votre aide.

    Pour le moment, j'ai laissé un peu de coté cette partie de code. Je reviendrais dessus un peu plus tard.

    Merci

Discussions similaires

  1. [XL-2007] Boucle sur des optionbutton ?
    Par Mausland dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/10/2015, 14h48
  2. [XL-2007] Boucle sur Checkbox
    Par guigui69 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/04/2011, 16h47
  3. boucle sur checkbox
    Par kOrt3x dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 13/04/2011, 21h20
  4. [XL-2007] Problème boucle sur checkbox
    Par amelyfred dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/04/2010, 22h13
  5. Probleme de boucle sur checkbox
    Par nuFox dans le forum VBA Access
    Réponses: 10
    Dernier message: 05/12/2008, 14h25

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