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

Résolu
Cire37
Messages postés
5
Date d'inscription
lundi 11 avril 2011
Statut
Membre
Dernière intervention
5 mai 2011
- 27 avril 2011 à 22:02
jordane45
Messages postés
35487
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 mai 2022
- 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

7 réponses

jordane45
Messages postés
35487
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 mai 2022
356
28 avril 2011 à 12:32
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
3
cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
27 avril 2011 à 22:29
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
0
Cire37
Messages postés
5
Date d'inscription
lundi 11 avril 2011
Statut
Membre
Dernière intervention
5 mai 2011

27 avril 2011 à 22:39
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.
0
jordane45
Messages postés
35487
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 mai 2022
356
28 avril 2011 à 10:48
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jordane45
Messages postés
35487
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 mai 2022
356
28 avril 2011 à 10:50
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
0
jordane45
Messages postés
35487
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 mai 2022
356
28 avril 2011 à 11:02
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
0
Cire37
Messages postés
5
Date d'inscription
lundi 11 avril 2011
Statut
Membre
Dernière intervention
5 mai 2011

28 avril 2011 à 11:12
Bonjour Jordane,

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

Trop fort !!!!

Merci
0