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 :

Autorisation caractères multiples


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Contrôleur de gestion
    Inscrit en
    Octobre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2011
    Messages : 11
    Par défaut Autorisation caractères multiples
    Bonjour,

    Je suis novice en VBA et je dois créer un petit programme. Dans ce programme j'ai inséré des textbox et des boutons.
    J'aurais souhaité pouvoir contrôler le format des caractères inscrits dans la textbox lorsque je clique sur un bouton. Les caractères autorisés doivent être seulement des lettres en majuscules ou des chiffres et le nombre de caractère maximum doit être de 8.
    Je suis coincé sur cette problématique, j'arrive à contrôler le nombre de caractère mais par leur format majuscule ou numérique.
    Je pensais faire quelque chose du genre :


    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
     
    'On définit les caractères autorisés
    caractere = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
     
    ' On vérifie le nombre de caractères de la chaîne
    If Len(Box_Immo.Value) > 8 Then
        MsgBox ("Votre Code Immobilisation ne doit pas dépasser 8 caractères")
    End If
     
    'On vérifie que les caractère de la box
    For i = 1 To Len(Box_Immo)
     If Box_Immo.Value = Mid(caractere, i, 1) <> 0 Then
            MsgBox ("Votre Code Immobilisation ne doit pas comporter d'espaces")
        End If
    Next i
    Cela ne fonctionne malheureusement pas...
    J'ai cherché et testé pas mal de fonction et malheureusement je ne dispose pas de beaucoup de temps pour bosser dessus...
    Si vous avez des idées ?
    Merci !

  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 : 52
    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
    Bonjour,

    En utilisant l'évenement Keypress de la textbox, tu test le code ascii du caractère saisit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Select Case KeyAscii
        Case 65 To 90
            'Caractère ok
        Case Else
            KeyAscii = 0
    End Select
     
    End Sub
    Il te reste a adapter pour les chiffres

  3. #3
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
     
    If Len(TextBox1) = 8 Then
        KeyAscii = 0
    Else
        Select Case KeyAscii
            Case 48 To 57, 65 To 90
            Case 97 To 122: KeyAscii = KeyAscii - 32
            Case Else: KeyAscii = 0
        End Select
    End If
    End Sub

  4. #4
    Membre averti
    Profil pro
    Contrôleur de gestion
    Inscrit en
    Octobre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2011
    Messages : 11
    Par défaut
    Merci de ta réponse !

    Mais est-il vraiment nécessaire d'utiliser KeyAscii ?

    J'aurais souhaité quelque chose d'assez simple, c'est un boulot que nous demande notre prof et nous sommes tous débutants en programmation, je pensais faire cela avec des fonctions que je connaissais, genre "Len", "Instr" ou "Chr" mais je suis un peu perdu avec toutes ces fonctions...

    Je souhaite pourvoir faire quelques choses en définissant mes caractères que j'autorise et ensuite lorsque j'analyse les valeurs des données entrées dans la textbox, il m'affiche une msgbox en cas de caractère n'appartenant pas à la chaine de caractère autorisée comme quoi il y a une "erreur".
    Suis-je compréhensible ?

    Merci en tout cas pour l'aide, ce qui est chiant c'est que je ne peux pas tester à présent vos formules puisque je tourne sur mac et que le VBA mac n'accepte pas activeX...

  5. #5
    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 : 52
    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
    Dans cas remplace la dernière partie de ton code.
    Tu n’étais pas très loin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i = 1 To Len(Box_Immo)
        If InStr(Caracteres, Mid(Box_Immo.Text, i, 1)) = 0 Then
                MsgBox ("Votre Code Immobilisation ne doit pas comporter d'espaces")
        End If
    Next i

  6. #6
    Membre averti
    Profil pro
    Contrôleur de gestion
    Inscrit en
    Octobre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2011
    Messages : 11
    Par défaut
    Merci pour ton aide !

    Je teste cela demain et je te dirais si cela convient à mon attente.
    D'ailleurs le message que j'ai mis dans ma dernière Msgbox ("Votre Code Immobilisation ne doit pas comporter d'espaces") est erroné.
    Je vais faire afficher un message du style "votre code immobilisation doit être écrit en majuscule et doit être composé seulement de lettres ou de chiffres"

    En tout cas merci encore, parce que VBA quand on début on y passe (et perd) énormément de temps, même si cela reste très intéressant pour quelqu'un qui utilise habituellement les fonctions basiques d'Excel !

    Bonne soirée !

  7. #7
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    Si ça peut t'être utile, vois l"approche de ce tutoriel :

    http://didier-gonard.developpez.com/...e-dans-texbox/

    Cordialement,

    Ps : si le côté technique de la réponse = OK ou pas => pensez à cliquer sur les pouces et quand question résolue à la taguer résolue, et chaque action vous rapporte des points

    Didier

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

Discussions similaires

  1. Autorisation caractères VBA
    Par gogo850 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 22/12/2011, 21h58
  2. Autorisation caractères spéciaux avec SiteMinder R12
    Par murphy01 dans le forum Sécurité
    Réponses: 1
    Dernier message: 06/05/2011, 16h57
  3. [RegEx] Regex : autoriser seulement certains caractères
    Par Thi0123 dans le forum Langage
    Réponses: 2
    Dernier message: 17/10/2006, 11h22
  4. Réponses: 2
    Dernier message: 26/11/2005, 13h44

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