IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

controle textbox avec chiffre commencant par 0 [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Juillet 2011
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juillet 2011
    Messages : 70
    Points : 52
    Points
    52
    Par défaut controle textbox avec chiffre commencant par 0
    bonjour,
    voila j'ai recupéré des bouts de code qui fonctionnent super bien mais mon pb est que je n'arrive pas a faire accepter le chiffre "0" comme premier chiffre.
    je suis pas encore tres doué en vba cela fait un mois que je pedale (mal) mais j'espère bien faire des progres.

    a chaque entrée du style 0612121212 il y a la msgbox "saisie non valide"

    un petit coup de main me serait agréable merci

    voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Private Sub TextBox4TelFixe_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    Dim strpassa As String
       strpassa = TextBox4TelFixe.Value
       If ChainePasOK1(strpassa) = True Then Cancel = True: TextBox4TelFixe.Value = "": Beep: MsgBox "Saisie non valide !"
    End Sub
     
    Private Function ChainePasOK1(strpassa As String) As Boolean
       If strpassa = "" Then Exit Function
       If Len(Replace(strpassa, ".", "")) <> Len(strpassa) Then ChainePasOK1 = True: Exit Function
       If Len(strpassa) = 1 And InStr("1234567890", strpassa) = 0 Then ChainePasOK1 = True: Exit Function
       strpassa = Replace(strpassa, ",", ".")
       If Len(CStr(Val(strpassa))) <> Len(strpassa) Then ChainePasOK1 = True
    End Function
     
    Private Sub TextBox4TelFixe_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
       If InStr("1234567890,-", Chr(KeyAscii)) = 0 Then
          KeyAscii = 0: Beep
       End If
    End Sub

  2. #2
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Bonjour,

    il me semble que c'est cette ligne qui te pose problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Len(CStr(Val(strpassa))) <> Len(strpassa) Then ChainePasOK1 = True
    La conversion en valeur de ta saisie supprime les 0 qui sont à gauche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Val(0612121212) => 612121212
    Jérôme

  3. #3
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Points : 3 974
    Points
    3 974
    Par défaut
    Bonjour,

    Tu écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Len(CStr(Val(strpassa))) <> Len(strpassa) Then ChainePasOK1 = True
    Avec strpassa=”0612121212”, tu as donc : Len(strpassa)=10.
    D’autre part, Val(strpassa)= 612121212 et Len(CStr(Val(strpassa)))=9
    Donc, ChainePasOK1 = True.
    et If ChainePasOK1(strpassa) = True Then MsgBox "Saisie non valide !"

    Cordialement.

    Bonjour Jfontaine,
    il me semble que nous avons fait la même remarque ... c'est bon signe !

  4. #4
    Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Juillet 2011
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juillet 2011
    Messages : 70
    Points : 52
    Points
    52
    Par défaut
    merci pour vos reponses et vos pistes

    alors j'ai modifié la ligne comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If Len(CStr(strpassb)) <> Len(strpassb) Then ChainePasOK2 = True
    cela a l'air de fonctionner

    merci encore

  5. #5
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Tu peux meme retirer la ligne car ton test équivaut a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If strpassb <> strpassb Then ChainePasOK2 = True
    Jérôme

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/07/2012, 19h56
  2. controle textbox avec c#
    Par rimenis dans le forum C#
    Réponses: 5
    Dernier message: 02/05/2011, 13h01
  3. innerHTML et les chiffres commenceant par 0
    Par sami117 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 11/03/2009, 12h49
  4. un controle text avec bkgrnd diff par ligne
    Par hpfx dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 23/02/2008, 18h14
  5. Rentrer des chiffres commencant par un 0 sans le perdre.
    Par sebastien_oasis dans le forum IHM
    Réponses: 2
    Dernier message: 20/08/2007, 18h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo