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 :

Définir un contrôle de chaîne de caractère


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Par défaut Définir un contrôle de chaîne de caractère
    Bonjour,

    Comment écrire un contrôle déterminant qu'une référence doit être formée par maxi 8 chiffres + une lettre.

    La référence doit-être composée de 1 à 8 chiffres + une lettre. Si l'utilisateur ne rentre pas ce critère, je souhaite créer une msgbox comme quoi la référence n'est pas conforme et doit-être à nouveau saisie

    Merci pour votre aide

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

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    A adpater si besoin

    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
     
    Dim code As String
    code = "12345678"
     
    If IsNumeric(Left(code, 8)) = False Then MsgBox "anomalie"
    If Len(code) = 9 Then
        Select Case Asc(Right(code, 1))
            Case 65 To 90
                'ok
            Case 97 To 122
                'ok
            Case Else
                MsgBox "anomalie"
        End Select
    End If

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Je penses que cette fonction pourrait répondre à ton problème

    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
    20
    21
    22
    23
    Public Function TestContenu(strTest As String) As Boolean
     
        ' on test la longueur
        If Len(strTest) > 9 Then
            TestContenu = False
            Exit Function
        End If
     
        ' on test le dernier chiffre pour savoir si c'est une lettre
        If IsNumeric(Right(strTest, 1)) Then
            ' le dernier chiffre est de type numérique, donc pas bon
            TestContenu = False
            Exit Function
        End If
     
        ' on test maintenant si le reste de la chaine est du numérique
        If IsNumeric(Left(strTest, Len(strTest) - 1)) Then
            TestContenu = True
        Else
            TestContenu = False
        End If
     
    End Function
    Tu passes ta chaine en paramètre, elle te renvoie True s'il est bon et False dans l'autre cas.


    Starec

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

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    hello starec,

    J'avais pensé a ca aussi pour le dernier caractère; mais ca passe si on saisie un caractère de pontuation.
    A moins que ces caractères soient accepté

  5. #5
    Invité
    Invité(e)
    Par défaut
    Salut Voisin

    Exact, mais maejor n'a pas spécifié ce cas, attendons de ses nouvelles et de ses test.

    Starec

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    Si l'on refuse les lettres accentuées, la réponse est simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Command1_Click()
       toto = "12345678V"
       If Not toto Like "########[A-z]" Then MsgBox "non"
    End Sub

Discussions similaires

  1. Expression régulière de contrôle d'une chaîne de caractères
    Par ahmedpa dans le forum Général Java
    Réponses: 7
    Dernier message: 19/05/2014, 17h25
  2. Réponses: 2
    Dernier message: 22/12/2011, 18h19
  3. Contrôle d'une chaîne de caractère
    Par Pamplonica dans le forum Designer
    Réponses: 3
    Dernier message: 11/07/2011, 18h48
  4. Contrôle sur une chaîne de caractères
    Par jaussiba dans le forum SQL
    Réponses: 4
    Dernier message: 18/02/2011, 09h16
  5. Définir autrement une chaîne de caractères
    Par Niki59 dans le forum Langage
    Réponses: 9
    Dernier message: 22/03/2009, 15h34

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