Bonjour,
Je débute en VBA excel, et j'avoue ne pas tout comprendre malgré mes recherches perso et sur les forums. Quelqu'un pourrait-il m'aider sur le problème suivant ?
J'ai crée 3 USF comprenant chacun 280 textbox et je souhaitais obliger l'utilisateur à saisir uniquement des nombres J'ai donc passé le code ci-après. Celui-ci fonctionne seulement pour l'Usf2 lorsque je n'intègre pas le code des Usf 3 & 4; dès que j'intègre le code sur les 3 Usf, il ne fonctionne plus, pourtant je fais bien référence à des textbox différents, j'ai déclaré mes variables et j'ai bien codifié le module de classe.
Pouvez vous me dire d'où vient le problème car je ne trouve pas la solution ?
Avec mes Remerciements
`Code Module de classe
` Code Userform 2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Public WithEvents txtBox As MSForms.TextBox Private Sub txtBox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If InStr("0123456789", Chr(KeyAscii)) = 0 Then KeyAscii = 0 MsgBox "Vous devez saisir un nombre !" End If End Sub
` Code Userform 3
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Dim i As Integer Dim txtBox(1 To 280) As New Classe1 'Pour 280 TextBox Dim n, x As Integer Dim ctrl As Control 'Rentrer un nombre pour les 280 premières Textbox Private Sub txtBox_change() For Each ctrl In Controls For n = 1 To 280 If ctrl.Name = "TextBox" & n Then x = x + 1 Set txtBox(x).txtBox = ctrl End If Next n Next
` Code Userform 4
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Dim i As Integer Dim txtBox(281 To 560) As New Classe1 'Pour 280 TextBox Dim n, x As Integer Dim ctrl As Control 'Rentrer un nombre pour les 281 à 560 premières Textbox Private Sub txtBox_change() For Each ctrl In Controls For n = 281 To 560 If ctrl.Name = "TextBox" & n Then x = x + 1 Set txtBox(x).txtBox = ctrl End If Next n Next
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Dim i As Integer Dim txtBox(561 To 840) As New Classe1 'Pour 280 TextBox Dim n, x As Integer Dim ctrl As Control 'Rentrer un nombre pour les 561 à 840 premières Textbox Private Sub txtBox_change() For Each ctrl In Controls For n = 561 To 840 If ctrl.Name = "TextBox" & n Then x = x + 1 Set txtBox(x).txtBox = ctrl End If Next n Next
Partager