Re,
C'est trop rigolo.
Bon quand tu dis de faire je te cite :
If TextBox3.MaxLength <> "6" Then
Tu compares bien MaxLenght avec "6" qui est une chaine de caractère "6" n'est pas égal à 6. 6 est égal à Val("6") OK ou bien Clng("6") mais pas à "6".
En fait tu aurais du marquer :
If TextBox3.MaxLength <> 6 Then
D'où ma réflexion.
Et quand je te dis
Ce n'est pas du tout la même demande...
Je parle du post que tu cite en référence et où la demande est de mettre un point après le troisième caractère. C'est tout.
Donc pour résumer : Ci-dessous ce n'est pas bon. Mais comme je le dis dans un autre post, VBA est conciliant est cela passe, mais ce n'est pas une bonne pratique.
Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Len(TextBox3.Value) <> "6" Then
MsgBox "Merci de renseigner 6 chiffres"
Exemple : sur un appel direct ça passe :
Maintenant je passe par une variable :
si je déclare V en Long :
Donc surtout ne pas mélanger les torchons avec les serviettes...
Par contre ci-dessous c'est bon tu utilises un Long : 6
Private Sub TextBox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
TextBox3.MaxLength = 6
If InStr("1234567890", Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub
Tu as ici les références du langage, je m'y attarde bien souvent, il y a toute un tas d'idées et de références.
Bonne prog.