Récupération de TextBox dynamique
Bonjour à tous !! Je tiens à préciser que je suis débutant en la matière !
voici l'idée: je souhaite faire un outil qui répertorie des compteurs d'eau. Chaque compteurs pouvant posséder des sous compteurs, je travail donc avec des formes dynamique !!
voici mon problème: Lorsque je génère des textbox en dynamique (TB_N1), je souhaite récupérer le nombre entré par l'utilisateur dans chacune des textBox et les mettre dans un tableau (TableauCompteur1). Sachant que j'ai déjà fais mes recherches, et j'ai trouvé un code permettant de récupérer le contenu de textBox dynamiques mais suite à un appuie sur un bouton, sauf qu'ici je souhaite le faire " en live".
Voici mon code dans le userForm, sans la partie " control des TextBox" cela compile, mais avec non!
Code:
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
Dim TB As Control
Dim LBL As MSForms.Label
Dim FRM As MSForms.Frame
Dim TableauCompteur1(0 To 50, 0 To 50) As Integer
Dim CB As MSForms.CheckBox
Dim PosX As Long
Dim PosY As Long
PosX = 5
PosY = 40
Dim i As Integer
' Creation du cadre affichant les compteurs principaux
Set FRM = Me.Controls.Add("forms.frame.1")
With FRM
.Top = PosY
.Left = 0
.Height = 100
.Width = 450
.Caption = "Niveau 1-Entrez le nombre de sous compteurs de niveau 2 pour chaque compteurs de niveau 1"
.Visible = True
End With
For i = 1 To TB_COMPTEURS_PRINCIPAUX.Value
' Placement dynamique des noms de compteurs de niveau 1
Set LBL = FRM.Controls.Add("forms.label.1", "LBL_N1_" & i, Visible = True)
With LBL
.Top = 10
.Left = PosX - 50 + i * 50
.Caption = "Compteur " & i
End With
' Placement dynamique de la saisie du nombre de sous compteurs du niveau 1
Set TB = FRM.Controls.Add("forms.TextBox.1", "TB_N1_" & i, True)
With TB
.Name = "TB_N1_" & i
.Object.Value = ""
.Left = PosX - 50 + i * 50
.Top = 20
.Width = 20
.Height = 20
.FontBold = True
.Enabled = True
End With
Next i
End If
' Control du type textbox
For Each Ctrl In Me.Controls
CtrlName = Ctrl.Name
If InStr(CtrlName, "TB_N1_") = 1 Then
'recuperation du numero du Textbox
CtrlIndex = Val(Mid(CtrlName, 17))
'transfert des entrées dans feuille 3 pour vérifier
Worksheets("Feuil3").Cells(1, CtrlIndex).Value = Ctrl.Text
' ReleveValeur = Ctrl.Text
TableauCompteur1(1, CtrlIndex) = Ctrl.Text
End If
Next |
merci d'avance !!!!!!!!!!!!!!!!