Bonjour le forum,
je me permets de solliciter votre aide car je buche depuis 2 jours sur un fichier sur lequel je travaille et je ne trouve vraiment pas comment m'en sortir malgré mes recherches sur le net.
En fait, sur ma feuille, je me retrouve avec plusieurs combobox, checkbox et optionbutton, qui servent à l'utilisateur pour définir différents choix (le sujet importe peu dans le cas présent), et si l'utilisateur valide une case à cocher, cela doit griser / désactiver l'optionbutton ou la combobox associée, idem dans l'autre sens, le choix d'une valeur dans une combobox doit désactiver certaines checkbox / case d'option. Je précise également que tous se déroule sur ma feuille, et que je n'utilise pas d'userform.
Mais mon problème est le suivant au niveau des OptionButtons (je n'ai pas encore traité les combobox mais je presume que le traitement sera sensiblement le même) :
si j'utilise ceux de la partie formulaire de l'insertion, j'arrive à récupérer mes valeurs et à traier les données comme je le souhaites grâce aux cellules liées et aux zones de groupes et aucun problème pour les remettre à 0 via une macro, mais je n'ai pas réussi à trouver comment les désactiver suivant si la checkbox est cochée ou non (ou si une valeur est choisie dans une combobox).
Et si j'utilise ceux de la partie contrôle, via une frame, j'arrive à les désactiver en fonction de la checkbox, j'arrive à remettre les optionbutton d'une frame à 0, en revanche je n'arrive pas à gérer une boucle qui passerait par toutes les frames de ma feuille pour toutes les remettre à 0 via un click sur un bouton.
voila le code que j'utilise pour remettre la frame à 0 et qui marche très bien en lui-même :
De plus, si je passe par les optionbuttons de la partie contrôle, je n'arrive pas à retrouver et à traiter la valeur de l'optionbutton choisis dans la frame...
Donc déjà ma première intérrogation est :
d'après-vous quels éléments (formulaires ou contrôles) sont les plus adaptés à ce que je veux faire ?
et donc ensuite, si je choisis la partie formulaire, comment griser les éléments ? Où du moins les désactiver, car je n'arrive pas à trouver la bonne syntaxe ni même à savoir si je dois viser l'optionbutton directement ou la zone de groupe ?
Et si je choisis la partie contrôle, comment boucler sur toutes les frames de ma feuille avec mon bout de code précédent et surtout comment traiter la valeur de mes optionbutton par la suite ?
Voilà désolé pour ce pavé et si je ne suis pas très clair, n'hésitez pas à demander des précisions si certains points vous parraissent flous.
Merci d'avance pour votre aide.
je me permets de solliciter votre aide car je buche depuis 2 jours sur un fichier sur lequel je travaille et je ne trouve vraiment pas comment m'en sortir malgré mes recherches sur le net.
En fait, sur ma feuille, je me retrouve avec plusieurs combobox, checkbox et optionbutton, qui servent à l'utilisateur pour définir différents choix (le sujet importe peu dans le cas présent), et si l'utilisateur valide une case à cocher, cela doit griser / désactiver l'optionbutton ou la combobox associée, idem dans l'autre sens, le choix d'une valeur dans une combobox doit désactiver certaines checkbox / case d'option. Je précise également que tous se déroule sur ma feuille, et que je n'utilise pas d'userform.
Mais mon problème est le suivant au niveau des OptionButtons (je n'ai pas encore traité les combobox mais je presume que le traitement sera sensiblement le même) :
si j'utilise ceux de la partie formulaire de l'insertion, j'arrive à récupérer mes valeurs et à traier les données comme je le souhaites grâce aux cellules liées et aux zones de groupes et aucun problème pour les remettre à 0 via une macro, mais je n'ai pas réussi à trouver comment les désactiver suivant si la checkbox est cochée ou non (ou si une valeur est choisie dans une combobox).
Et si j'utilise ceux de la partie contrôle, via une frame, j'arrive à les désactiver en fonction de la checkbox, j'arrive à remettre les optionbutton d'une frame à 0, en revanche je n'arrive pas à gérer une boucle qui passerait par toutes les frames de ma feuille pour toutes les remettre à 0 via un click sur un bouton.
voila le code que j'utilise pour remettre la frame à 0 et qui marche très bien en lui-même :
Code:
Dim Ctrl As Control
For Each Ctrl In Me.Frame1.Controls
If TypeOf Ctrl Is MSForms.OptionButton Then
Ctrl.Object.Value = False
End If
Next Ctrl
De plus, si je passe par les optionbuttons de la partie contrôle, je n'arrive pas à retrouver et à traiter la valeur de l'optionbutton choisis dans la frame...
Donc déjà ma première intérrogation est :
d'après-vous quels éléments (formulaires ou contrôles) sont les plus adaptés à ce que je veux faire ?
et donc ensuite, si je choisis la partie formulaire, comment griser les éléments ? Où du moins les désactiver, car je n'arrive pas à trouver la bonne syntaxe ni même à savoir si je dois viser l'optionbutton directement ou la zone de groupe ?
Et si je choisis la partie contrôle, comment boucler sur toutes les frames de ma feuille avec mon bout de code précédent et surtout comment traiter la valeur de mes optionbutton par la suite ?
Voilà désolé pour ce pavé et si je ne suis pas très clair, n'hésitez pas à demander des précisions si certains points vous parraissent flous.
Merci d'avance pour votre aide.
Dernière édition: