Forcer le point dans toutes les TextBox
Bonjour,
Merci à tous car jusqu'à maintenant la seule consultation des posts déjà disponible avait suffit à m'aider, seulement maintenant je bloque et je ne sais pas d'où viens le souci.
J'ai créé un petit utilitaire à l'attention de la force de vente permettant de remplir automatiquement des listes de prix telles que celle que l'on peut trouver sur des devis.
Pour renseigner la remise appliquée, j'ai utilisé des TextBox qui doivent me renvoyer un nombre, pour cela, il faut être sur que ce nombre soit écrit, le cas échéant, avec un séparateur de décimal représenté par un ".".
Mon code devenant assez lourd, j'ai décidé d'utiliser les modules de classe pour gérer cela dans toutes les Textbox, et alors que cela fonctionnait sans les module de classe, avec, ça ne fonctionne pas, les TextBox me renvois systématiquement des nombre avec un séparateur à virgule et au format texte, donc inexploitable.
Je suis perdu.
Voilà ce que j'ai fait :
Le module de classe :
Code:
1 2 3 4 5 6 7 8 9 10
| Public WithEvents TextBoxEvent As MSForms.TextBox
Private Sub TextBoxEvent_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 44, 46: KeyAscii = Asc(Format(0, "."))
End Select
End Sub |
Le code dans UserForm :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| Option Explicit
Private TextBoxCollection As Collection
'Dim Nbref As Integer
Private Sub Userform_Initialize()
Dim Ctrl As Control
Dim TextBoxInstance As TextBoxClasse
Set TextBoxCollection = New Collection
For Each Ctrl In Me.Controls
If TypeName(Ctrl) = "TextBox" Then
Set TextBoxInstance = New TextBoxClasse
Set TextBoxInstance.TextBoxEvent = Ctrl
TextBoxCollection.Add TextBoxInstance
End If
Next Ctrl
End Sub |
J'ai du mal faire, mais je trouve pas où
(je précise que je ne suis pas pro et autodidacte, certaines notions peuvent parfois être un peu compliqué à appréhender pour moi)
Si quelqu'un pouvait me dire comment me corriger, je lui en serais éternellement reconnaissant.