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

VBA Access Discussion :

[VBA] Comparer une valeur à un masque de saisie


Sujet :

VBA Access

  1. #1
    Membre actif Avatar de spaiku
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Septembre 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2007
    Messages : 209
    Points : 293
    Points
    293
    Par défaut [VBA] Comparer une valeur à un masque de saisie
    Bonjour,

    dans l'application Access que je développe, je dois importer un fichier Excel qui comporte des numéros de série dont le format est "AA\-AAAAA" (ex : A1-BC234). En dehors du tiret, chaque caractère est alphanumérique.

    J'aimerais écrire une fonction qui me permette de savoir si ces numéros de série sont au bon format.

    J'avais d'abord pensé m'en tirer en utilisant la fonction format :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if serial <> format(serial, "AA\-AAAAA") then
    Mais la fonction Format me renvoie serial inchangé.

    Ce qui m'amène à la question : la fonction Format permet-elle de traiter autre chose que des nombres ou des dates ? Si oui, comment doit-on écrire une expression de format pour formater une chaîne ?

    Merci d'avance pour vos réponses.

  2. #2
    Membre actif Avatar de spaiku
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Septembre 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2007
    Messages : 209
    Points : 293
    Points
    293
    Par défaut
    J'ai auto-satisfait mon besoin avec cette fonction :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    'Vérifie le format d'une chaîne de caractères avec :
    '- 0 pour un chiffre
    '- A pour une lettre
    '- # pour tout caractère
    '- tout autre caractère dans le masque doit être présent au même endroit
    '  dans la chaîne vérifiée
     
    Function ComparerMasque(p_Chaine As String, p_Masque As String) As Boolean
     
    If Len(p_Chaine) <> Len(p_Masque) Then GoTo Echec
     
    Dim i As Integer
    For i = 1 To Len(p_Chaine)
        Select Case Mid(p_Masque, i, 1)
            Case "0"
                If Not IsNumeric(Mid(p_Chaine, i, 1)) Then GoTo Echec
            Case "A"
                If InStr("abcdefghijklmnopqrstuvwxyz", Mid(p_Chaine, i, 1)) = 0 Then GoTo Echec
            Case "#"
     
            Case Else
                If Mid(p_Masque, i, 1) <> Mid(p_Chaine, i, 1) Then GoTo Echec
        End Select
    Next i
    ComparerMasque = True
    Exit Function
     
    Echec:
    ComparerMasque = False
    Exit Function
    End Function
    Mais peut-être y a-t-il plus simple/élégant ?

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

Discussions similaires

  1. comparer une valeur de formulaire et une chaine de caractere.
    Par minirom dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/08/2006, 11h53
  2. (VBA) écrire une valeur dans une table
    Par migaleb dans le forum Access
    Réponses: 1
    Dernier message: 22/06/2006, 13h45
  3. [VBA-A] Comparer une valeur à nimporte quel caractère
    Par cuicui08 dans le forum VBA Access
    Réponses: 23
    Dernier message: 23/03/2006, 10h26
  4. VBA : ajouter une valeur dans une liste déroulante
    Par remi59 dans le forum Access
    Réponses: 4
    Dernier message: 22/12/2005, 11h01
  5. Comparer une valeur à plus ou moins quelque chose...?
    Par Thierry8 dans le forum Langage
    Réponses: 4
    Dernier message: 11/10/2005, 14h17

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