Code sur optionbutton dynamique

ConsultantJP

XLDnaute Occasionnel
Bonjour,

J'ai créer un userform qui génère automatiquement des optionsbuttons (en fonction des données dans un classeur).

Mon probleme est que je souhaiterai mettre des controles dans cet usf

habituellement je faisais, optionbutton1_click() et mon code de controle.

Et la je suis bloqué car je ne peux pas le faire dans la mesure ou optionbutton1 n'existe pas à la base (vu qu'il est généré automatiquement).

avez vous une idée?
Merci
 

jp14

XLDnaute Barbatruc
Re : Code sur optionbutton dynamique

Bonjour

Une piste : Utiliser un module de classe.
A la création du bouton l'affecter à la classe des options boutons.
Si on doit exécuter une procédure particulière passer son nom dans le paramètre Tag.

JP
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Code sur optionbutton dynamique

Bonjour à tous,

Aucun problème si on parle d'optionButton qui se trouvent dans un userform

1- au départ, construire l'usf avec tous les optionButton nécessaires et y affecter les procédures
2- Ensuite, mettre la propriété .Visible=False pour tous le optionButton que tu n'as pas envie de voir
3- faire en sorte que la procédure les rende visibles et/ou invisibles au moment opportun

Bonne soirée
à+
Philippe
.
 

ConsultantJP

XLDnaute Occasionnel
Re : Code sur optionbutton dynamique

Merci pour ta réponse,
malheuresment, non ça va pas etre aussi simple.

car en faite les option button s'affiche dans un multipage, ou les pages se créer dynamiquement également.

donc impossible de prévoir à l'avance le nombre de boutton d'une page.

J'ai fait une tentative de créer un :

private sub optionbutton1_click() mais ça ne marche pas.

En gros vu que le optionbutton n'existe pas à l'ouverture du formulaire, il n'appel pas mon code.....

pfff
 

MJ13

XLDnaute Barbatruc
Re : Code sur optionbutton dynamique

Bonjour à tous


Consultant: Normalement, comme le dit JP, les modules de classe, c'est un peu fait pour cela (mais c'est assez complexe et je ne maîtrise pas assez).

Fait une recherche sur XLD ou sur le net.

Sinon, si tu connais le nombre maxi d'options buttons que tu auras, tu peux regardez le jeu Trouvez le mot 2010 (sous ma signature) qui avec 24 textboxs maxis , pourrait t'aider (c'est un peu ce que dit philippe non :rolleyes:).

Enfn, avec un petit fichier, je suis sur que tu auras plus de solutions adaptées à ton problème.
 

Pierrot93

XLDnaute Barbatruc
Re : Code sur optionbutton dynamique

Bonjour à tous

un exemple assez simple d'utilisation de module de classe, suite à création dynamique de contrôles " OptionButton ", à adapter à ton projet.

bon après midi
@+
 

Pièces jointes

  • classeur1.zip
    12.8 KB · Affichages: 101
  • classeur1.zip
    12.8 KB · Affichages: 98
  • classeur1.zip
    12.8 KB · Affichages: 99

ConsultantJP

XLDnaute Occasionnel
Re : Code sur optionbutton dynamique

Merci pierrot , je venais également de trouver un code sur le net qui fonctionne très très bien.

Pour info :
Dans un module de classe
Code:
'
Option Explicit

Public WithEvents OptionButtonGroup As MSForms.OptionButton

Private Sub OptionButtonGroup_Click()

msgbox "OK"

End Sub

Dans un module classique
Code:
Option Explicit
Public Collect As Collection
Public CollectC As Collection


Public Sub InitOption(i As Integer)
Dim Obj As Control
Dim Cl As Classe1
Set Cl = Nothing
Set Collect = New Collection


'boucle sur les objets de la Feuil1
 'For b = 1 To Me.MultiPage2.Pages.Count
For Each Obj In UserForm1.MultiPage2.Pages(i).Controls
    'verifie s'il s'agit d'un OptionButton
    If TypeOf Obj Is MSForms.OptionButton Then
        
        Set Cl = New Classe1
        Set Cl.OptionButtonGroup = Obj
        Collect.Add Cl
    End If
Next Obj

End Sub

Dans le USF (moi j'ai mis à chq changement de page)
Code:
Private Sub MultiPage2_Change()
  InitOption (MultiPage2.Value)

End Sub

voila si toutefois cela peut aider quelqu'un
 

Discussions similaires

Réponses
3
Affichages
248

Statistiques des forums

Discussions
312 496
Messages
2 088 978
Membres
103 996
dernier inscrit
KB4175