Bonsoir,

je découvre les classes les objets et ouf.!!!! ....
Dans un USF, j'ai une liste multiselection, deux boutons de commande et une textbox.
Lors que je selectionne ou déselectionne un nom dans la liste, apparait ou disparait une Frame qui contient le nom et le prénom selectionné, un Combobox (donne le niveau), des labels qui reprennent les scores et les date de score en fonction de la selection choisi par la comBOBox. 2 text Box permettent d'entrer des nouveaux scores et des nouvelles date.
Tout est en création dynamique.
code userform
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 Dim NLabel As ClasseControle
Dim NCombo As ClasseControle
Private sub userform_Activate
'création de la liste pour les combobox
For Niveau = 0 To 6
MonTableau(Niveau) = Niveau + 1
Next Niveau
 
'initialisation du tableau de place pour les frame
'initialisation de la liste
quand je crée les frames, je crée le label Nom, le label Prénom inclus dans une frame puis les combo

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
' création de la combobox
Set NCombo = New ClasseControle
Set NCombo.oCombo = Me.Controls("Frame" & Numero).Controls.Add("Forms.Combobox.1")
'Debug.Print "Me.Controls(Ncombo.oCombo).Name  " & Me.Controls(NCombo.oCombo).Name
With NCombo.oCombo
    .List = MonTableau ....
end with
Select Case NCombo.oCombo.Value
Case 1
    .BackColor = &H80FF80
    Couleur = "Vert"
case 2....
end select
si je mets juste en dessous de la création le débug.print sur le nom des combo une erreur d'execution -2147352571(80002005)' le type ne correspond pas
si je l'enlève le debug.print les with et select case qui suivent et qui caractérisent le combo fonctionnent. Mais
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
Debug.Print "Me.Controls(Ncombo.oCombo).Name  " & Me.Controls(NCombo.oCombo).Name
résultat du debug.print
Me.Controls(Ncombo.oCombo).Name  Label2
Me.Controls(Ncombo.oCombo).Name  TextBoxDate
Me.Controls(Ncombo.oCombo).Name  CBGolfeur
Me.Controls(Ncombo.oCombo).Name  Label2
Me.Controls(Ncombo.oCombo).Name  CBInfos
Me.Controls(Ncombo.oCombo).Name  TextBoxDate
on voit apparaitre dans le debug.print tous les controles qui sont hors de la frame et qui ne sont pas des combo et pas le combo ????
par contre si je fais la même chose avec les label, j e n 'obtiens que des labels...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
Set NLabel = New ClasseControle
Set NLabel.oLabel = Me.Controls("Frame" & Numero).Controls.Add("Forms.Label.1")
Debug.Print "NLabel.oLabel.name  " & NLabel.oLabel.Name
 
NLabel.oLabel.name  Label122
NLabel.oLabel.name  Label123
NLabel.oLabel.name  Label124
NLabel.oLabel.name  Label125
module de classe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Option Explicit
Public WithEvents oBouton As MSForms.CommandButton
Public WithEvents oLabel As MSForms.Label
Public WithEvents oCombo As MSForms.Combobox
j'ai des soucis aussi sur les codes pour créer les évènements sur les combo et labels. Mais j'attends pour vous en parler de digérer les docs que j'ai imprimés.

Avec tous mes remerciements

Boisselière