SeKo54
Messages postés18Date d'inscriptionvendredi 28 mars 2008StatutMembreDernière intervention 5 novembre 2008
-
10 avril 2008 à 14:24
SeKo54
Messages postés18Date d'inscriptionvendredi 28 mars 2008StatutMembreDernière intervention 5 novembre 2008
-
22 avril 2008 à 15:41
Bonjour, je développe sur VBA une petite application qui nécessite la création de controles dynamiques. Jusque la pas de problème pour les crées, seuleument je n'arrive pas acceder au méthodes qui permettent d'effectuer des actions lorsque je clique sur ces objets. Voici mon code :
'Partie contenue dans l'userform**********************************************************
Private Sub UserForm_Initialize()
Dim hauteur, gauche, largeur, haut As Integer
Dim Obj1, Obj2 As Control
Dim Cl1 As Classe1
Dim Cl2 As Classe2
Dim i As Integer
hauteur = 15
gauche = 10
largeur = 40
haut = 30
nbpuisage = 5
Set Collect1 = New Collection
Set Collect2 = New Collection
For i = 1 To nbpuisage
Set Obj1 = UserForm2.Controls.Add("Forms.ComboBox.1", , Visible)
With Obj1
.Left = gauche + 105
.Top = haut
.Width = largeur + 40
.Height = hauteur
.Visible = True
End With
'ajout de l'objet dans la classe
Set Cl1 = New Classe1
Set Cl1.ComboBx = Obj1
Collect1.Add Cl1
Set Obj2 = UserForm2.Controls.Add("Forms.TextBox.1", , Visible)
With Obj2
.Left = gauche
.Top = haut
.Width = largeur
.Height = hauteur
.Text = "8" & i
.Visible = True
End With
'ajout de l'objet dans la classe
Set Cl2 = New Classe2
Set Cl2.TextBx = Obj2
Collect2.Add Cl2
haut = haut + 20
Next i
'Paramètrage de l'userform
With CommandButton1
.Left = gauche + 140
.Top = haut '+ nbpuisage * (Hauteur)
.Visible = True
End With
UserForm2.Height = 78 + nbpuisage * (hauteur + 6)
UserForm2.Width = 205
End Sub
'Partie contenue dans classe1**********************************************************************
Option Explicit
Public WithEvents ComboBx As MSForms.ComboBox
Private Sub ComboBx_Change()
'cet exemple affiche le nom et la valeur de l'objet cliqué
MsgBox ("coucou")
End Sub
'Partie contenue dans classe1**********************************************************************
Option Explicit
Public WithEvents TextBx As MSForms.TextBox
Private Sub TextBx_Click()
'cet exemple affiche le nom et la valeur de l'objet cliqué
MsgBox TextBx.Name & ": " & TextBx.Value
End Sub
SeKo54
Messages postés18Date d'inscriptionvendredi 28 mars 2008StatutMembreDernière intervention 5 novembre 2008 22 avril 2008 à 15:41
Bonjour,
Après plusieurs heures de débacles j'ai enfin réussi à utiliser mes contrôles crées dynamiquement. Pour cela je me suis inspiré fortement du document que l'on trouve ici : http://silkyroad.developpez.com/VBA/VisualBasicEditor
SeKo54
Messages postés18Date d'inscriptionvendredi 28 mars 2008StatutMembreDernière intervention 5 novembre 2008 11 avril 2008 à 08:47
Salut bigfish,
En fait j'essaye de créer des controle dynamique avec ce code. Le problème c'est qu'une fois crée ces controles ne réagissent pas aux clics par exemple. Je voulais savoir ce qui ne fonctionnait pas dans le bout de code que j'ai tapé. En gros pourquoi lorsque je clique sur un de mes comboBox le message "coucou" ne s'affiche t-il pas ?