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!
merci d'avance !!!!!!!!!!!!!!!!
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
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
Partager