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 :

Cadre de saisie et fonction "like"


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2011
    Messages : 20
    Par défaut Cadre de saisie et fonction "like"
    Bonjour à tous,

    J'ai créé un userform, et je suis en train d'appliquer tout un tas de contrôles et de vérifications des données saisies par l'utilisateur dans mes textbox et autres. Je bloque au moment de faire la validation d'une textbox qui contient un code.
    Ce code peut avoir trois formats:
    - A00-0nnnn
    - EQ-0nnnn
    - EQ-0nnnnn
    (avec 'n' étant un chiffre entre 1 et 9)

    J'ai utilisé le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub TBoxIDNumber_exit(ByVal Cancel As MSForms.ReturnBoolean)
        If Not TBoxIDNumber.Value Like "EQ-0#####" Or TBoxIDNumber.Value Like "EQ-0####" Or TBoxIDNumber.Value Like "A00-0####" Then
            Me.TBoxIDNumber.SetFocus
            MsgBox "The Equipment ID number should follow one of these format ('n' means number):" & vbCr & vbCr & "EQ-0nnnnn (i.e: EQ-013543)" & vbCr & vbCr & "EQ-0nnnn (i.e: EQ-09561)" & vbCr & vbCr & "A00-0nnnn (i.e: A00-01543)"
            Exit Sub
        End If
    End Sub
    Le problème c'est que la j'ai une erreur pour toute autre entrée différente que le premier masque ("EQ-0#####").
    J'utilise surement le 'Like' de la mauvaise manière, mais je ne sais pas comment changer ma macro pour qu'elle prenne en compte mes trois masques de saisie.

    Est-ce que vous auriez une solution à me donner pour résoudre ce problème?

    Autre question: j'ai compris que 'SetFocus' ne fonctionnait pas sur l'évenement 'Exit', comment puis-je revenir sur mon textbox après mon message d'erreur?


    Merci d'avance pour vos réponses.

  2. #2
    Membre Expert
    Femme Profil pro
    Data engineer
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Data engineer
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Par défaut
    Bonjour,
    Il y a un problème de logique dans le If. Le Not doit s'appliquer aux trois tests, donc il faut mettre les trois Like entre parenthèses :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not (TBoxIDNumber.Value Like "EQ-0#####" Or TBoxIDNumber.Value Like "EQ-0####" Or TBoxIDNumber.Value Like "A00-0####") Then

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2011
    Messages : 20
    Par défaut
    Merci beaucoup tedo01!

    Ca marche parfaitement!


    Je laisse la discussion ouverte puisque j'aimerais bien comment utiliser l'option 'SetFocus' dans mon évennement 'Exit' (ou alors trouver quelque chose d'équivalent).

  4. #4
    Membre Expert
    Femme Profil pro
    Data engineer
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Data engineer
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Par défaut
    Re-bonjour,
    Essaie de faire Cancel = True à la place du SetFocus...

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