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 :

Limiter l'écriture à des lettres [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 24
    Par défaut Limiter l'écriture à des lettres
    Bonjour à tous, la semaine dernière j'avais posé la question concernant la limite d'écriture aux caractère numériques.
    cette fois j'aurai besoin de votre aide pour limiter l'écriture aux lettres et rien d'autres.

    Pr info, les contraintes déjà appliquées sont : limite à 2 caractères, et en MAJ.
    Merci à vous

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 102
    Par défaut
    Bonjour

    Ci dessous un code pour limiter à 2 caractères, en majuscules et que des caractères alphabétiques.

    Un code pour transformer les minuscules en majuscules et supprimer tous les autres caractères en jouant sur les propriétés du code ASCII.

    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
    Private Sub TextBox1_Change()
    If TextBox1.SelStart >= 2 Then
        TextBox1 = Left(Me.TextBox1, 2)
    End If
    End Sub
     
    Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If TextBox1.SelStart >= 2 Then Exit Sub
    Select Case KeyAscii
        Case > 122
             KeyAscii = 0
        Case Is < 65
            KeyAscii = 0
        Case Is > 91
                If KeyAscii <= 96 Then KeyAscii = 0
                If KeyAscii > 96 And KeyAscii < 122 Then  ' minuscule
                        KeyAscii = KeyAscii - 32
                   'L'écart entre les minuscules et majuscule est de 20H soit 32 en décimal
                End If
        End Select
     
    End Sub
    A tester et à modifier

    JP014

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut SenseniX et le forum
    Pr info, les contraintes déjà appliquées sont : limite à 2 caractères, et en MAJ.
    Le but est d'avoir des réponses ou d'avoir des réponses correctes ?
    : Sur une plage d'une feuille ? Un contrôle ?
    Quand : À chaque saisie ? À la validation ?
    Qu'est-ce qu'on fait en cas d'erreur : On efface le(s) caractère(s) impropre(s) ? On avertit et on boucle tant qu'il n'y a pas correction ?
    Que foit-on s'il y a une seule lettre ? Une lettre et un espace ?

    Que signifie contrainte "et en MAJ"
    A+

  4. #4
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 24
    Par défaut
    J'ai mis "les contraintes déjà appliquées", cela signifie que j'ai déjà mis des critères qui fonctionnent sur ce champ.

    - Il s'agit d'un userform.

    - J'aurai souhaiter que lors de l'écriture dans le champs, seules les lettres soient possibles. Pas de numérique, ni de caractères , . ! ? .

    Il ne peut y avoir d'erreurs car on limite l'écriture en lettres donc pas de messages d'erreur car toute autre écriture est interdite.

    Ect-ce plus clair ?

  5. #5
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour SenseniX jp014 Gorfael le forum si c'est dans une textbox tu peus faire cela dans proprietees de la textbox MaxLength =2

    puis code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
       If KeyAscii < 65 Or KeyAscii > 90 Then KeyAscii = 0
    End Sub

  6. #6
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 24
    Par défaut
    Marche nikel, merci

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut SenseniX et le forum
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub TextBox1_Change()
    Select Case Me.TextBox1.TextLength
        Case 1
            If Not (UCase(Me.TextBox1) Like "[A-Z]") Then Me.TextBox1 = ""
        Case 2
            If Not (UCase(Me.TextBox1) Like "[A-Z][A-Z]") Then _
                Me.TextBox1 = Left(Me.TextBox1, 1)
        Case Else
            Me.TextBox1 = Left(Me.TextBox1, 2)
        End Select
    End Sub
    Autre proposition autorisant majuscules et minuscules (aa, aA, Aa ou AA)
    A+

  8. #8
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    re, Gorfael une autre piste utiliser KeyCode. majuscules & minuscules uniquement
    j'ai pas trop testée !!! cela peut être interessant a voir!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    Select Case KeyCode: Case Is = 8, 13, 65 To 90: Case Else: KeyCode = 0: End Select
    End Sub

  9. #9
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, à tester et adapter au contexte

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

Discussions similaires

  1. [JTextField] Limiter la saisie a des lettres.
    Par Cyborg289 dans le forum Composants
    Réponses: 4
    Dernier message: 16/09/2005, 11h40
  2. transformer des lettres en chifres
    Par hassanibi dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 06/09/2005, 09h54
  3. Limiter le résultat des résultats
    Par francois78 dans le forum Access
    Réponses: 2
    Dernier message: 15/06/2005, 13h48
  4. Comment entrer des lettres accentuées sous postgresql ?
    Par Chihuahua dans le forum Requêtes
    Réponses: 11
    Dernier message: 28/08/2003, 09h04
  5. limiter l'ouverture des ports internets
    Par Paradam dans le forum Développement
    Réponses: 2
    Dernier message: 16/06/2003, 17h03

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