Bonjour à tous,
Je travaille en ce moment sur la création d'une macro destinée à tourner sur une multitude de PC de l'entreprise. Je rencontre un petit problème d'ordre technique, sur certains ordinateurs, bien que l'on autorise l'utilisateur à remplir une TextBox uniquement à l'aide de chiffres et de points à l'aide d'un code similaire à celui ci dessous:
Lorsque j'enregistre dans un classeur la valeur de ma TextBox avec le code ci dessous (la case dans laquelle cette valeur est enregistrée est au format Nombre et attend un nombre décimal utilisant un point), sur certains ordinateurs, bien que le nombre affiché dans la textBox soit avec un point, le nombre qui s'affiche dans le tableau est avec une virgule.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub TextBox_Diameter_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If InStr("1234567890", Chr(KeyAscii)) = 0 Then KeyAscii = 0 End Sub
Cela pose des problèmes de format par la suite quand je reprend ces données pour les comparer aux valeurs standards. J'avais essayé d'utiliser le code (Val(Replace(Me.TextBox_Diameter.Text, ",", "."))) au moment de l'enregistrement des données dans le tableau, le problème est que pour les ordinateurs sur lesquels les TextBoxs ne remplacent pas automatiquement les . par des , la macro me renvoie un rapport d'erreur concernant ce code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dies_Database.Worksheets("ListDies").Cells(derligne2, ColumnLDDiameter) = Me.TextBox_Diameter.Value
Je voulais donc savoir s'il existerait un moyen de checker si la TextBox contient un nombre décimal avec une virgule afin de la remplacer au moment de l'enregistrement avec le code présenté plus haut. Quelque chose du genre : If Me.TextBox_Diameter.Text.contains(,) (ce code étant totalement imaginaire)
Quelqu'un aurait des idées?
Partager