Titre Textbox

Anthony3000 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour, je souhaiterais contraindre le formatage d'un textbox afin qu'il soit écrire de la manière suivante : "YYYY-MM Titre de l'ouvrage".


Le problème est que lorsque l'on écrit un chiffre, il renvoi le message d'erreur alors que si l'on écrit seulement des lettres il continu comme tel...

Je ne sais pas comment faire pour qu'on ne puisse pas simplement bloqué si ce n'est pas ce format précis.

Voici le programme :

Dim bu As String

If m.Value = Format(m.Value, "yyyy-mm" & "bu") then
...
Else Else
MsgBox ("Vous devez entrer un nom d'affaire suivant les codes : AAAA-MM Nom de l'affaire.")

End If
End Sub

Merci par avance, Anthony.

1 réponse

pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Bonjour,

Un exemple de ce qu'il est possible de faire en utilisant 2 événements du contrôle TextBox :

Private Sub TextBox2_Change()
'Evénement qui se déclenche à chaque changement dans le TextBox
Dim titre As String
titre = "Mon Titre"
'Si l'utilisateur a saisi 4 caractères alors on y ajoute "-"
If Len(TextBox2) = 4 Then TextBox2.Value = TextBox2.Value & "-"
'si l'utilisateur a saisi 4 caractères, puis 2 autres (après la saisie automatique du "-"
'alors on y ajoute un espace et le titre
If Len(TextBox2) = 7 Then TextBox2.Value = TextBox2.Value & " " & titre
End Sub

Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
'se déclenche lors de l'appui sur les touches du clavier lorsque le textbox a le focus
'(curseur dans le textbox)
'Empêche la saisie d'un caractère non numérique
If KeyCode < 48 Or KeyCode > 57 Then KeyCode = 0
End Sub


Une autre possibilité consiste à vérifier, en fin de saisie, si le formatage est correct. L'inconvénient est que l'utilisateur devrait systématiquement tout ressaisir...
0