VBA : créer un objet

Bonsoir tout le monde,

Je travail sur un userform, et je souhaite savoir comment créer mes propres objets.

Par exemple, dans le code ci dessous, je crée deux controls (checkbox et textbox) :

Private Sub UserForm_Initialize()

Set obj1 = Me.Controls.Add("forms.Checkbox.1")
Set obj2 = Me.Controls.Add("forms.Textbox.1")

With obj1
.Left = 10
.Name = "obj1"
End With

With obj2
.Left = 30
.Name = "obj2"
End With

End Sub

Je voudrais savoir s'il est possible de créer un seul objet contenant un checkbox et un textbox, du genre :

Set obj_tbx_chbx = Me.Controls.Add("forms.Textbox.1","forms.Checkbox.1")

Je vous remercie pour votre aide.

Pourquoi veux-tu créer les deux objets en même temps?

Slt Math,

Je souhaite les créer en même temps car je l'objet que je veux créer contient ces 2 objets.

En fait, je voudrai créer un objet qui correspondrait à une textbox et checkbox.

C'est plus pour savoir si c'est possible est connaître la méthode. Comment créer ce type d'objet...

Merci d'avoir répondu

A ma connaissance on ne peut pas faire ça. Par contre si tu as à créer ces deux controles souvent, rien ne t'empêche de te créer une procedure de création de ces deux controles et ensuite l'appeller au besoin:

Private Sub CommandButton1_Click()
    CreationControle
End Sub

Private Sub CreationControle()
    'Création de l'objet 1
    Set obj1 = Me.Controls.Add("forms.Checkbox.1")
    With obj1
        .Left = 10
        .Name = "obj1"
    End With

    'Création de l'objet 2
    Set obj2 = Me.Controls.Add("forms.Textbox.1")
    With obj2
        .Left = 30
        .Name = "obj2"
    End With
End Sub

tu pourrais aller plus loin en ajoutant des paramêtres à la procedure:

Private Sub CommandButton1_Click()
    Call CreationControle(10, 0, "Obj1", 30, 0, "Obj2")
End Sub

Private Sub CreationControle(Obj1_Left As Integer, _
                             Obj1_Top As Integer, _
                             Obj1_Name As String, _
                             Obj2_Left As Integer, _
                             Obj2_Top As Integer, _
                             Obj2_Name As String)
    'Création de l'objet 1
    Set obj1 = Me.Controls.Add("forms.Checkbox.1")
    With obj1
        .Left = Obj1_Left
        .Top = Obj1_Top
        .Name = Obj1_Name
    End With

    'Création de l'objet 2
    Set obj2 = Me.Controls.Add("forms.Textbox.1")
    With obj2
        .Left = Obj2_Left
        .Top = Obj2_Top
        .Name = Obj2_Name
    End With
End Sub

Merci math pour toutes ces informations.

Je vais essayer d'adapter ton code à mes besoins.

Bonne journée

Rechercher des sujets similaires à "vba creer objet"