Utiliser les contrôles d'un userform créé dynamiquement

thilam

XLDnaute Junior
Bonjour à toutes et tous,
Je souhaiterais afficher un userform qui liste les champs data du tableau croisé dynamique sélectionné, avec le nom du champ , la fonction de consolidation courante (somme, nb,...) et le format de nombre de la colonne.
L'idée est de pouvoir modifier les fonctions et le format des champs à l'aide du formulaire en une fois plutôt que de le faire champ par champ.

j'ai réussi à faire en sorte d'ajouter par programme à un formulaire de base les contrôles correspondant au nombre de data de mon tableau croisé. Le formulaire s'affiche correctement.
Là où ça se gâte c'est que les procédures click liées aux contrôles n'existent pas. Quand je clique sur les boutons d'options il ne se passe rien.

Y a-t'il une solution pour créer ces procédures de manière dynamique afin que le formulaire fonctionne?

Je vous copie le morceau de code qui adapte le formulaire en fonction du nb de colonnes du tableau (NBC) et je joins une image du formulaire de base (pour clarifier mon propos)


Merci de votre aide

Code:
Sub creaform()
 
 
Load NbChpsTCD
    NbChpsTCD.Height = 95 + 30 * (NBC)
 
 
 
    With NbChpsTCD
 
    For I = 2 To NBC
 
        Set cadre1 = .Controls.Add("forms.Frame.1", "Champ" & I)
            With cadre1
                .Width = 100
                .Height = 30
                .TOP = 30 * (I - 1) + 5
                .Left = 140
                .Caption = ""
                Set OptionButton1 = .Controls.Add("forms.OptionButton.1", "Somme" & I)
                    With OptionButton1
                        .Width = 42
                        .Height = 20
                        .TOP = 5
                        .Left = 5
                        .Caption = "Somme"
                    End With
 
                 Set OptionButton2 = .Controls.Add("forms.OptionButton.1", "Nbre" & I)
                    With OptionButton2
                        .Width = 45
                        .Height = 20
                        .TOP = 5
                        .Left = 47
                        .Caption = "Nombre"
                    End With
                End With
 
        Set cadre2 = .Controls.Add("forms.Frame.1", "Format" & I)
            With cadre2
                .Width = 190
                .Height = 30
                .TOP = 30 * (I - 1) + 5
                .Left = 252
                .Caption = ""
                Set OptionButton3 = .Controls.Add("forms.OptionButton.1", "Sme" & I)
                    With OptionButton3
                        .Width = 42
                        .Height = 20
                        .TOP = 5
                        .Left = 5
                        .Caption = "# ##0"
                        .event
                    End With
 
                 Set OptionButton4 = .Controls.Add("forms.OptionButton.1", "Smd" & I)
                    With OptionButton4
                        .Width = 60
                        .Height = 20
                        .TOP = 5
                        .Left = 65
                        .Caption = "# ##0.00"
                    End With
 
                 Set OptionButton5 = .Controls.Add("forms.OptionButton.1", "Pc" & I)
                    With OptionButton5
                        .Width = 40
                        .Height = 20
                        .TOP = 5
                        .Left = 140
                        .Caption = "0%"
'                        MsgBox (.BackColor)
                    End With
 
            End With
 
        Set textbox1 = .Controls.Add("forms.textbox.1", "Nomchamp" & I)
            With textbox1
                .Width = 126
                .Height = 20
                .TOP = 30 * (I - 1) + 10
                .Left = 5
                .Text = ""
                .BackColor = -2147483633
                .BorderStyle = fmBorderStyleNone
                .SpecialEffect = fmSpecialEffectFlat
            End With
 
        Next I
 
            .Okbutton.TOP = 30 * I + 5
 
 
End With
 
End Sub
 

Pièces jointes

  • userform.jpg
    userform.jpg
    66.3 KB · Affichages: 93
  • userform.jpg
    userform.jpg
    66.3 KB · Affichages: 104
  • userform.jpg
    userform.jpg
    66.3 KB · Affichages: 103
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Utiliser les contrôles d'un userform créé dynamiquement

Bonjour,

hello!
Le problème a été résolu sur un autre forum. Je ne sais pas comment indiquer que le sujet est clos.
ThL

pas de "flag" sur ce forum, tu le dis et c'est très bien.... mets peut être le lien sur l'autre forum, la réponse peut interresser d'autres personnes qui auraient le même souci....

bon après midi
@+
 

Discussions similaires

Réponses
1
Affichages
196
Réponses
0
Affichages
177

Statistiques des forums

Discussions
312 499
Messages
2 089 002
Membres
104 002
dernier inscrit
SkrauzTTV