Bonjour a tous,
Ne trouvant pas de solution/explication a mon problème sur la plupart des forums consacré ou du moins une solution que j'arrive a exploité je me permet d'exposer ici mon cas.
Basiquement, un UserForm avec une brouette de TextBox, certaine destiné a recevoir du texte d'autre du numérique (ensuite exploité par excel).
Afin de contrôler la saisie dans ces TextBox l'idée m'est venue d'utiliser un module de classe ( au bout de la 30eme TextBox, je me suis lassé).
J'ai pris l'option de gerer le contrôle de saisie dans un premier temps via le Keypress pour transformer le "." (clavier num) en "," car je me suis aperçu qu'il s’agissait de l'erreur principale de saisie (pour les autres contrôles : décimale, 2 virgule, négatif,.. on verra après).
Voici
Code du Userform
Avec le module de classe ClassNumBox:
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 Option Explicit Private Sub UserForm_Initialize() Dim TNumBox() As New ClassNumBox Dim ctrl As Control Dim T As Integer For Each ctrl In Me.Controls If TypeOf ctrl Is MSForms.TextBox Then Select Case ctrl.Tag Case Is = "1" T = T + 1 ReDim Preserve TNumBox(1 To T) Set TNumBox(T).NumBox = ctrl End Select End If Next ctrl End Sub
dans l'idée, les textBox avec le tag "1" doivent être numérique, les autres non (je garde sous le coude différent type de numérique avec la modification du tag)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Public WithEvents NumBox As MSForms.TextBox Private Sub NumBox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If KeyAscii = 46 Then KeyAscii = 44 End Sub
Bon, et du coup... ça marche pas.
Si quelqu'un pouvais me donner une piste de réflexion pour trouver mon erreur...
Merci par avance
Partager