Bonjour à tous,
Je travaille sur un UF assez conséquent, avec déjà 500 TextBox, et j'utilise un Private Sub afin de les protéger en écriture, de deux sortes.
Pour les cellules à remplir, j'écris :
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If InStr("1234567890,.", Chr(KeyAscii)) = 0 _
Or InStr(TextBox113.Value, ",") <> 0 And Chr(KeyAscii) = "," _
Or InStr(TextBox113.Value, ".") <> 0 And Chr(KeyAscii) = "." _
Or InStr(TextBox113.Value, ",") <> 0 And Chr(KeyAscii) = "." _
Or InStr(TextBox113.Value, ".") <> 0 And Chr(KeyAscii) = "," _
Then
KeyAscii = 0: Beep
End If
End Sub
Et pour les cellules résultat (complètement bloquées), j'utilise :
Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If InStr("", Chr(KeyAscii)) = 0 Then
KeyAscii = 0: Beep
End If
End Sub
Seulement, avec autant de cellules, cela me prend bien le quart du code juste pour contrôler la saisie. J'aimerais savoir s'il existe un moyen d'"alléger" le code en faisant varier les Private Sub dans des boucles, pour des séries de cellules (si c'est faisable .. ), ou simplement une autre méthode qui serait moins "lourde".
Je vous remercie d'avance, bonne journée à tous !