Bonjour,
J'ai un UserForm dans lequel je crée dynamiquement une serie de label et textbox lors de l'initailisation du UserForm, En fonction d'éléments de ma feuille.
Schématiquement j'ai d'abord cette serie de declarations en tête de code de mon userform :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Option Explicit Private WithEvents CBt_Valid As MSForms.CommandButton Private WithEvents CBt_Cancel As MSForms.CommandButton Private NumBox As Integer Private TxBx() As MSForms.TextBox Private Label() As MSForms.Label
Ensuite j'ai l'initailisation du USF :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 For i = 1 To NumOfTank 'boucle pour la création des Labels et TextBox Set Label(i) = Me.Controls.Add("forms.label.1") With Label(i) .Name = "label" & i .Caption = Store.Offset(i - 1, 0).Value .Left = 10 .Top = (hauteur + 10) * i + 20 .Width = largeur .Height = hauteur End With Set TxBx(i) = Me.Controls.Add("forms.textbox.1") With TxBx(i) .Name = "TextBox" & i If (Store.Offset(i - 1, 1).Value = "") Then .Value = 0.98 Else .Value = Store.Offset(i - 1, 1).Value End If .Left = 15 + largeur + 5 .Top = (hauteur + 10) * i - 2 + 20 .Width = 40 .Height = hauteur + 5 End With Next i
L'initialisation se passe bien mes labels , textboxs ( avec leurs valeurs) apparaissent.
Je souhaite ensuite traiter ces valeurs dans la sub_click d'un de mes boutons :
Mais j'obtiens le message suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Private Sub CBt_Valid_Click() MsgBox TxBx(0).Value End Sub
c'est à dire que ce qui a été fait sur TxBx() (ReDim, Set, .Value,etc.) ne semble avoir de portée que dans la sub initialize, alors que la declaration est faite en dehors.runtime error '91'
Object variable or With block variable not set
Merci de m'apporter vos lumières en prog VBA
Partager