[Catégorie modifiée VB6 -> VBA] Controler le format de saisie dans un textbox VB [Résolu]

Cire37 5 Messages postés lundi 11 avril 2011Date d'inscription 5 mai 2011 Dernière intervention - 27 avril 2011 à 22:02 - Dernière réponse : jordane45 22952 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 24 octobre 2018 Dernière intervention
- 28 avril 2011 à 12:32
Bonjour,

Je cherche à controler la saisie dans un textbox, si le premier caractére est un chiffre alors saisie que de 4 chiffres dans ce textbox, si c'est une lettre, saisie que de 3 lettres.

Merci d'avance pour votre aide
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
jordane45 22952 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 24 octobre 2018 Dernière intervention - 28 avril 2011 à 12:32
3
Merci
Bonjour,

par contre si la réponse te convient, penses à mettre le sujet en résolu.

Bonne continuation.

Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI

Merci jordane45 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de jordane45
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 27 avril 2011 à 22:29
0
Merci
Salut

As-tu fait des recherches avec "vba saisie textbox" ?
Tu trouveras ainsi des exemples se rapprochant de ce que tu veux faire et tu comprendras vite comment l'adapter.
Tout se passe dans maTextBox_Change et/ou maTextBox_KeyPress

Les fichiers BAS et FRM des sources VB6 sont lisibles avec NotePad et peuvent (à 80%) s'appliquer au VBA.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
[img]http://allproj
Commenter la réponse de cs_Jack
Cire37 5 Messages postés lundi 11 avril 2011Date d'inscription 5 mai 2011 Dernière intervention - 27 avril 2011 à 22:39
0
Merci
Merci pour ta réponse rapide Jack, j'ai effectivement regardé si je ne trouvais pas mon bonheur, j'arrive à faire une saisie que numérique ou que texte dans mon textbox, ce que je n'arrive pas à faire c'est ce choix en fonction du premier caractére saisie.
Commenter la réponse de Cire37
jordane45 22952 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 24 octobre 2018 Dernière intervention - 28 avril 2011 à 10:48
0
Merci
Bonjour,

voili voilou



Private Sub TextBox1_Change()

Txtb = UserForm1.TextBox1.Value
If Len(Txtb) = 1 Then
    
    Select Case Txtb
        
        Case 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
        ' test si c'est un chiffre..
        UserForm1.TextBox1.MaxLength = 4
        Case Else
         ' sinon... bloquer à 3 lettres
        UserForm1.TextBox1.MaxLength = 3

    End Select

End If

End Sub




Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
Commenter la réponse de jordane45
jordane45 22952 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 24 octobre 2018 Dernière intervention - 28 avril 2011 à 10:50
0
Merci
Bonjour,
par contre je n'ai pas intégré le control des caractères suivants;..

Je te laisse regarder... ( Si le premier caractère est un chiffre.. alors les suivants le seront aussi.. Idem pour les lettres).


Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
Commenter la réponse de jordane45
jordane45 22952 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 24 octobre 2018 Dernière intervention - 28 avril 2011 à 11:02
0
Merci
Bonjour,

Bon.. voila.. vite fait.. une façon de faire.. ( il y a surement mieux mais là je ne suis pas encore assez révéillé )

Private Sub TextBox1_Change()

Txtb = UserForm1.TextBox1.Value

PC = Left(Txtb, 1)
    Select Case PC
        Case 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
        ' test si c'est un chiffre..
        UserForm1.TextBox1.MaxLength = 4
        tip = "chiffre"
        Case Else
         ' sinon... bloquer à 3 lettres
        UserForm1.TextBox1.MaxLength = 3
        tip = "texte"

    End Select

If Len(Txtb) > 1 Then
    
LC = Right(Txtb, 1)

Select Case LC
    Case 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
    If tip "texte" Then UserForm1.TextBox1.Value Left(Txtb, Len(Txtb) - 1)
    Case Else
    If tip "chiffre" Then UserForm1.TextBox1.Value Left(Txtb, Len(Txtb) - 1)
End Select

End If

End Sub



Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
Commenter la réponse de jordane45
Cire37 5 Messages postés lundi 11 avril 2011Date d'inscription 5 mai 2011 Dernière intervention - 28 avril 2011 à 11:12
0
Merci
Bonjour Jordane,

Un grand merci, c'est exactement le fonctionnement que je cherchais.

Trop fort !!!!

Merci
Commenter la réponse de Cire37

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.