Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Vérifier le format écrit dans une textbox

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Ptitgoud

XLDnaute Nouveau
Bonjour,

Je voudrais savoir si c'est possible de vérifier la mise en forme d'un code écrit dans une textbox d'un userform?
Par exemple vérifier que le code inscrit dans cette textbox est bien sous la forme "AAAA-0000"
Je sais qu'il est possible de faire cela pour l'heure ou la date mais est-il possible de le faire pour un format quelconque que l'on définit?

Merci d'avance!

Edit:
J'ai trouvé cela pour pouvoir faire quelque chose qui ressemble à ce que je veux mais cela ne me permet pas d'écrire de lettres dans ma textbox. Par quoi faut-il remplacer les # pour pouvoir écrire une lettre?

Code:
Private Sub TextBox1_Change()
    Dim strFormat As String
    Dim x As Integer
    
    x = Len(TextBox1)
    
    strFormat = "####-####"
    strFormat = Left(strFormat, x)
    
    If Not TextBox1 Like strFormat Then _
        TextBox1 = Left(TextBox1, x - 1)

End Sub
 
Dernière édition:
Re : Vérifier le format écrit dans une textbox

Bonjour Ptitgoud, bonjour le forum,

Peut-être comme ça :
Code:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case Len(Me.TextBox1.Value) 'action en fonction du nombre de caractères de la TextBox1
    Case 0 To 3 'cas de 0 à 3 caractères
        'si la touche pressée est inférieure au code ASCII 65 (A) ou supérieure au code ASCII 90 (Z), fait un retour arrière (efface le caractère édité)
        If KeyAscii < 65 Or KeyAscii > 90 Then KeyAscii = 8
    Case 4 'cas quatre caractères
        'si la touche pressée est différente du code ASCII 45 (-), fait un retour arrière (efface le caractère édité)
        If KeyAscii <> 45 Then KeyAscii = 8
    Case 5 To 8 'cas de 5 à 8 caractères
        'si la touche pressée est inférieure au code ASCII 48 (0) ou supérieure au code ASCII 57 (9), fait un retour arrière (efface le caractère édité)
        If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 8
    Case Is > 8 'cas 8 caractères
        KeyAscii = 8 'fait un retour arrière (efface le caractère édité)
End Select 'fin de l'action en fonction de ...
End Sub
 
Re : Vérifier le format écrit dans une textbox

Bonsoir Ptitgoud, Robert, et à ceux qui passeront par ici,

Robert, je suis actuellement sur une appli où j'ai besoin de gérer le format de TextBoxes
créés d'une façon dynamique dans un USF.

Je n'en suis qu'au stade d'imposer l'écriture en Majuscule, Format "Prénom",
Format téléphone, et saisie numérique ou non.

Cette notion de "KeyAscii" relative aux Codes ASCII m'intéresse beaucoup.
J'utilise aussi le "Select Case" dans un Module de Classe groupant les TextBoxes.

Existe-t-il un document récapitulatif des codes engendrés par une action sur le clavier?

De mon coté, il n'y a pas urgence, mais en lisant ce post, j'en profite pour m'informer.

Pardon de m'être immiscé, bonne soirée à tous, et Bravo Robert pour ce que tu sais faire.

Amicalement,

Yann
 
Re : Vérifier le format écrit dans une textbox

Bonsoir Ptitgoud, Robert🙂, Yann🙂

@Yann
pour la correspondance des codes / caractères, dans l'aide vba tu recherches "jeu de caractères", en espérant qu'est bien là ta recherche...

bonne soirée
@+
 
Re : Vérifier le format écrit dans une textbox

Bonsoir Pierrot, Oui c'est cela,

Merci pour ton regard, mais j'ai un souci concernant l'aide VBA.

Je ne peux y avoir d'accès en faisant une recherche.

Sans doute mon installation est imparfaite. Je vais tenter d'y remédier!

A quoi bon vouloir labourer le terrain quand l'on n'a pas les outils!!!

Je remets à zéro, et je commence par là.

Merci encore, et bonne soirée à toi et à ceux qui passeront par là.

Amicalement,

Yann
 
Re : Vérifier le format écrit dans une textbox

Re,

Yann, le code ci-dessous te listera le code du caractère et le caractère associé...
Code:
Option Explicit
Sub test()
Dim i As Integer
For i = 0 To 255
    Cells(i + 1, 1) = i
    Cells(i + 1, 2) = Chr(i)
Next i
End Sub
 
Re : Vérifier le format écrit dans une textbox

Merci Pierrot 🙂,

Je l'ai traduit ainsi sur le bouton d'une Feuille:

Code:
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 0 To 255
    Cells(i + 1, 1) = i
    Cells(i + 1, 2) = Chr(i)
Next i
End Sub

C'est superbe! Je vais enfin pouvoir comprendre....

Quel bonheur d'avoir dans ce Forum des personnes comme toi!

Laissons la place à Ptitgoud, en espérant qu'il soit conscient de la chance qu'il a de te voir là.

Bonne soirée, et au plaisir (Surtout pour moi)

Amicalement,

Yann
 
Re : Vérifier le format écrit dans une textbox

Bonjour tout le monde,
Désolé de ne pas avoir donné de nouvelles hier je n'avais plus de connexion.

Merci Robert pour le code c'est même plus que ce que je cherchais puisque tu prends également en compte le fait que le texte soit en majuscule, c'est parfait!

Merci beaucoup!

J'en profite également pour poser une petite question, dans ton code c'est marqué "Case 0 To 3" le premier caractère tapé correspond au caractère 0 ?
 
Dernière édition:
Re : Vérifier le format écrit dans une textbox

Bonjour le fil, bonjour le forum,

En fait l'événement KeyPress s'effectue avant que le caractère soit édité dans la TextBox. Quand on presse la première touche l'événement se déclenche mais la TextBox n'est pas encore éditée. Donc pour que ça fonctionne sur les 4 premiers caractères il me faut étudier la longueur du texte de la textbox allant de 0 à 3, etc.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…