Modifier le texte saisi dans une textbox ?

Bonjour,

Dans une textbox, est-il possible de rajouter automatiquement un 0 au début, au contenu saisi par l'utilisateur si et seulement si ce dernier a saisi 2 chiffres devant une lettre au début.

Un exemple sera bien plus clair...

L'utilisateur a saisi "62K1064" dans la textbox, le contenu est corrigé et devient 062K1064.

Merci beaucoup,

Bonne soirée,

Amicalement

Bonsoir,

Tu peux essayer comme ça

Private Sub TextBox1_Change()
    If Len(TextBox1.Value) = 3 Then
        If IsNumeric(Left(TextBox1.Value, 2)) And Not IsNumeric(Right(TextBox1.Value, 1)) Then
            TextBox1.Value = "0" & TextBox1.Value
        End If
    End If
End Sub

A+

Bonsoir Frangy,

merci beaucoup de ton aide, je vais tester ! Je te tiens au courant !

Aurais-tu la gentillesse de m'expliquer le code ?

Encore merci,

Bonne soirée

Le code utilise l’évènement Change du contrôle TextBox1.

A chaque caractère saisi, la procédure vérifie si 3 caractères ont été saisis.

Si c’est le cas, elle vérifie si les 2 premiers sont numériques et le troisième non numérique.

Si c’est le cas, elle ajoute un "0" en tête du texte.

A+

Bonjour Frangy, le Forum,

Ton code fonctionne parfaitement !! Merci beaucoup ! J'ai pu l'adapter à d'autres cas, mais je bute sur les 2 derniers cas spéciaux...

* si la textbox1 contient 430588/1-21402, il faudrait que son contenu devienne 430588/1 (j'ai essayé d'écrire un code qui repère "-" et qui supprime ce qui suit, sans succès...),

* si la textbox1 contient 049351/1, le contenu devient 49351/1

Merci beaucoup !

Bonne journée,

Amicalement

Alors j'ai trouvé pour le 2è cas. Pour ceux que ça peut intéresser :

Private Sub TextBox1_Change()
      If (Left(TextBox1.Value, 1)) = 0 Then
          TextBox1.Value = Right(TextBox1, Len(TextBox1) - 1)
      End If
End Sub

Je continue à chercher pour le 1er cas !

Bonne journée !

Bonjour,

Pour le premier cas, tu vas avoir un problème lié à l’utilisation de l’évènement Change de la TextBox.

Cet évènement se produit à chaque changement de valeur de la TextBox.

Tu peux donc intercepter le caractère "-" mais si tu interdis simplement sa saisie, rien n’empêchera l’opérateur d’écrire le reste du texte et tu n’obtiendras pas l’effet attendu, à savoir la suppression des caractères suivants (rien n’empêche d’écrire "430588/121402").

Donc, si tu souhaites interdire la saisie du texte à partir de l’apparition du caractère "-", il va falloir que tu gères cette limitation (message d’alerte par exemple).

Une autre solution consiste à attendre la fin de la saisie pour effectuer le contrôle.

Un exemple en utilisant l’évènement LostFocus

Private Sub TextBox1_LostFocus()
    If InStr(TextBox1.Value, "-") > 0 Then
        TextBox1.Value = Left(TextBox1.Value, InStr(TextBox1.Value, "-") - 1)
    End If
End Sub

A+

Bonjour Frangy,

C'est parfait merci ! encore 1 cas auquel je n'avais pas pensé...

* si STBB0728K9 alors le contenu de la textbox1 devient STBB0728

Une idée ?

Merci beaucoup de ton aide !

Celui-la, j'aurais parié que tu allais le trouver tout seul

Private Sub TextBox1_LostFocus()
    If TextBox1.Value = "STBB0728K9" Then TextBox1.Value = "STBB0728"
End Sub

A+

Merci Frangy ! Oui, j'aurais pu le trouver celui là !

mais ce n'est pas ce que je cherche et c'est de ma faute, je n'ai pas été assez clair...

En fait, dans la textbox1, si dans le contenu entré, les 2 derniers caractères sont une lettre et un chiffre (ex: K9), j'aimerais que ces 2 caractères soient supprimés. Je ne connais pas le nombre de caractères total de ma textbox...

J'ai pris l'exemple de "STBB0728K9" qui donne "STBB0728", mais un autre exemple pourrait être "9841213134TTTTTH6454564T1", qui donnerait "9841213134TTTTTH6454564"... et là, je bloque...

Voici de quoi débloquer

Private Sub TextBox1_LostFocus()
    If Not IsNumeric(Mid(TextBox1.Value, Len(TextBox1.Value) - 1, 1)) And IsNumeric(Right(TextBox1.Value, 1)) Then
        TextBox1.Value = Left(TextBox1.Value, Len(TextBox1.Value) - 2)
    End If
End Sub

A+

Rechercher des sujets similaires à "modifier texte saisi textbox"