gernoulle
Messages postés4Date d'inscriptionjeudi 13 avril 2006StatutMembreDernière intervention29 janvier 2007
-
16 août 2006 à 16:26
gernoulle
Messages postés4Date d'inscriptionjeudi 13 avril 2006StatutMembreDernière intervention29 janvier 2007
-
17 août 2006 à 10:42
Bonjour,
Je cherche à créer dynamiquement un Userform sous Excel.
Je déclare ma variable MyUserform de type Userform, mais lorsque j'essaye de la charger et l'afficher, j'ai un message d'erreur : "Variable objet ou variable de bloc with non définie"
michelxld
Messages postés402Date d'inscriptionvendredi 6 août 2004StatutMembreDernière intervention12 octobre 200831 16 août 2006 à 18:59
bonjour
j'espere que cet exemple pourra t'aider
Option Explicit
Dim Usf As Object
Sub lancementProcedure()
Dim X As Object
Dim i As Integer
Dim strList As String
strList = "ListBox1"
Set X = creationUserForm_Et_listBox_Dynamique(strList)
For i = 1 To 10
X.Controls(strList).AddItem "Donnee " & i
Next i
X.Show
ThisWorkbook.VBProject.VBComponents.Remove Usf
Set Usf = Nothing
End Sub
Function creationUserForm_Et_listBox_Dynamique(nomListe As String) As Object
Dim ObjListBox As Object
Dim j As Integer
Set Usf = ThisWorkbook.VBProject.VBComponents.Add(3)
With Usf
.Properties("Caption") = "Mon UserForm"
.Properties("Width") = 300
.Properties("Height") = 200
End With
Set ObjListBox = Usf.Designer.Controls.Add("Forms.ListBox.1")
With ObjListBox.Left 20: .Top 10: .Width = 90: .Height = 140
.Name = nomListe
.Object.ColumnCount = 1
.Object.ColumnWidths = 70
End With
With Usf.CodeModule
j = .CountOfLines
.insertlines j + 1, "Sub " & nomListe & "_Click()"
.insertlines j + 2, "If Not " & nomListe & ".ListIndex = -1 Then MsgBox " & nomListe
.insertlines j + 3, "End Sub"
End With
VBA.UserForms.Add (Usf.Name)
Set creationUserForm_Et_listBox_Dynamique = UserForms(UserForms.Count - 1)