Création de controle dynamique et module de classe

Le
Nico_63
Bonjour à tous.

Ma question:
Comment créér dynamiquement plusieurs controles sur un userform (en
l'occurence des label) ET les affecter à une classe définie ??

Ou plus précisément:

**********************************************
**********************************************
Je sais créér des controles dynamiquement dans une userform,
avec une procédure de la forme:

For a = 1 To 5
Set Mycmd = Controls.Add("Forms.Label.1", "nouv" & a)
Mycmd.Width = 80
Mycmd.Height = 22
Mycmd.Caption = Mycmd.Name
Mycmd.Left = 45
Mycmd.Top = 300 + (24 * a)
Mycmd.BorderStyle = 1
Next a

pour créér par exemple dans ce cas 5 controles de type Label

**********************************************
**********************************************

Par ailleurs, je sais coder l'affectation de controles à un module de classe,
ce qui permet ensuite de définir le comportement des controles sur les
événements.

exemple:

Public Sub un()
Dim classenicolabel(1 To 4) As classenico
Dim I As Integer
For I = 1 To 4
Set classenicolabel(I) = New classenico
Set classenicolabel(I).Label = UserForm1.Controls("Label" & I)
Next I
UserForm1.Show
End Sub

et le module de classe associé:

Public WithEvents Label As MSForms.Label
Private Sub Label_Click()
If Label.Caption = "xxxxxxxxxx" Then
Label.Caption = "oooooooooo"
Else
Label.Caption = "xxxxxxxxxx"
End If
End Sub
Dans cet exemple, 1 clic sur le label change sa caption.

**********************************************
**********************************************
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #18334621
Voici un exemple : http://cjoint.com/?biqgHRPV7g

à la volée, il y a création de CheckBox sur un formulaire...
selon que tu coches un checkbox particulier une colonne
de la feuille active se masque ou s'affiche.

Le principe est similaire... tu n'as qu'à adapter !

Originalement, ce classeur créée par JB que j'ai complété.




"Nico_63" news:
Bonjour à tous.

Ma question:
Comment créér dynamiquement plusieurs controles sur un userform (en
l'occurence des label) ET les affecter à une classe définie ??

Ou plus précisément:

**********************************************
**********************************************
Je sais créér des controles dynamiquement dans une userform,
avec une procédure de la forme:

For a = 1 To 5
Set Mycmd = Controls.Add("Forms.Label.1", "nouv" & a)
Mycmd.Width = 80
Mycmd.Height = 22
Mycmd.Caption = Mycmd.Name
Mycmd.Left = 45
Mycmd.Top = 300 + (24 * a)
Mycmd.BorderStyle = 1
Next a

pour créér par exemple dans ce cas 5 controles de type Label

**********************************************
**********************************************

Par ailleurs, je sais coder l'affectation de controles à un module de
classe,
ce qui permet ensuite de définir le comportement des controles sur les
événements.

exemple:

Public Sub un()
Dim classenicolabel(1 To 4) As classenico
Dim I As Integer
For I = 1 To 4
Set classenicolabel(I) = New classenico
Set classenicolabel(I).Label = UserForm1.Controls("Label" & I)
Next I
UserForm1.Show
End Sub

et le module de classe associé:

Public WithEvents Label As MSForms.Label
Private Sub Label_Click()
If Label.Caption = "xxxxxxxxxx" Then
Label.Caption = "oooooooooo"
Else
Label.Caption = "xxxxxxxxxx"
End If
End Sub
Dans cet exemple, 1 clic sur le label change sa caption.

**********************************************
**********************************************
Publicité
Poster une réponse
Anonyme