![]() |
|
Forum
|
|
|
#1 (permalink) |
|
Guest
Messages: n/a
|
Bonsoir tout le monde
je travaille sur un userform avec une quarantaine de textbox. Je recherche une combine pour lors de la validation des données, vérifier en une seule boucle si des points on été saisie en lieu et place de virgule dans les controles (textbox ou combobox). j'avais pensé à ceci (merci de pas vous marrer) : dim ctrl as object For Each ctrl In UserForm3.Controls If IsNumeric(ctrl) = True Then ctrl = Application.WorksheetFunction.Substitute(ctrl, ".", ",") End If Next ctrl mais ceci ne marche pas (et cours encore moins). Si vous pouviez me donner une solution globale pour éviter la saisie du point au lieu de la virgule ou me renvoyer vers un lien. D'avance je vous en remercie Salut Hervé |
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
Guest
Messages: n/a
|
re
petite précision, je pense que l'on doit passer par un module de classe, type : Public WithEvents TxtBox As MSForms.TextBox Private Sub TxtBox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If KeyAscii = Asc(",") Then KeyAscii = Asc(".") End Sub mais ensuite, au niveau du module, je ne sais pas comment faire référence à ce code. d'avance merci Salut Hervé |
|
|
#4 (permalink) |
|
Guest
Messages: n/a
|
Bonjour Hervé, didier, Le forum
Si tu dois appliquer sur l'ensemble des texbox, la solution de Didier. Si tes besoins sont plus ciblés sur certaines texbox et non pas toutes, une simple macro change sur les textbox concernées suffit pour gérer en temps réel. Private Sub TextBox1_Change() TextBox1.Value = Replace(TextBox1.Value, ".", ",", 1) End Sub ou alors par groupe en ponctuel For compteur = 1 To 46 UserForm3.Controls("TextBox" & compteur).Value = Replace(UserForm3.Controls("TextBox" & compteur).Value, ".", ",", 1) Next compteur Cordialement, A+ |
| Liens sociaux |
| Outils de la discussion | |
|
|