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 :

VBA interdiction de saisie de caractère spéciaux dans TextBox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 7
    Par défaut VBA interdiction de saisie de caractère spéciaux dans TextBox
    Bonjour,

    Je voudrais autoriser, dans une TextBox, la saisie de seulement des lettres d'alphabet (sans accent) et d'un espace.

    Pouvez vous m'aider svp pour interdir tous les autres caractères?

    Merci

  2. #2
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Regarde cette réponse de l'ami Fring (cela remonte déjà à quelques temps...)
    dans cette discussion

    2 compléments
    Valeurs des Keycode

    Pour une conversion sans accent

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Function ch_sans_accent(ch_characters As Range)
    liste_accents = "ÉÈÊËÔéèêëàçùôûïî"
    liste_sans_accents = "EEEEOeeeeacuouii"
    tempo = ch_characters.Value
    For i = 1 To Len(tempo)
            s = InStr(liste_accents, Mid(tempo, i, 1))
            If s > 0 Then Mid(tempo, i, 1) = Mid(liste_sans_accents, s, 1)
    Next
    ch_sans_accent = tempo
    End Function
    ou bien

    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
    Function Sans_accents(Chaine As String) As String 
     
     Dim avec_acc As String, sans_acc As String
     
     avec_acc = "ÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ"
     sans_acc = "AAAAAAEEEEIIIINOOOOOUUUUYaaaaaaeeeeiiiionooooouuuuyy"
     
     Chaine = Replace(Replace(Replace(Replace(Chaine, "œ", "oe"), "Œ", "OE"), "æ", "ae"), "Æ", "AE")
     
     Dim i As Byte, u As Byte
     
     For i = 1 To Len(Chaine)
            u = InStr(1, avec_acc, Mid(Chaine, i, 1), 0)
            If u > 0 Then Mid(Chaine, i, 1) = Mid(sans_acc, u, 1)
     Next i
     
     Sans_accents = Chaine
     
     End Function

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 7
    Par défaut
    J'ai oublié de préciser que la saisie de chiffre ne me pose pas de problème.
    c'est plus les tiret, les accents... qui me pose problème

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 7
    Par défaut
    Citation Envoyé par MarcelG Voir le message
    Bonjour,

    Regarde cette réponse de l'ami Fring (cela remonte déjà à quelques temps...)
    dans cette discussion
    merci !!!

  5. #5
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    J'ai complété ma proposition par 2 compléments (voir mon 1er post)

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    ceci permettra de n'accepter que des lettres non accentuées et des chiffres, tout en gardant disponibles ce qui doit l'être (enter, tab, flèches directionnelles, suppr, etc ..)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
     Select Case KeyCode
        Case 32, 48 To 57, 65 To 90, 97 To 122, 8, 37 To 40, 46, 13, 9, 54
       Case Else
         KeyCode = 0
       End Select
    End Sub
    EDIT : j'avais oublié le tiret -->> ajouté

  7. #7
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    C'est bien le sens de ma réponse, non?

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

Discussions similaires

  1. Angular 5 | Interdire la saisie de caractères spéciaux dans un input
    Par amateurDeveloppeur dans le forum Angular
    Réponses: 2
    Dernier message: 17/12/2018, 18h48
  2. [XL-2010] Empêcher la saisie de caractère spéciaux dans Inputbox()
    Par baptou42 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 19/05/2014, 08h19
  3. [Débutant] Empêcher la saisie de caractère spéciaux dans une textbox
    Par jyves47 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 05/02/2014, 20h00
  4. [WD-2003] Reconnaissance des caractères spéciaux dans du code Word VBA
    Par laurent_diep dans le forum VBA Word
    Réponses: 15
    Dernier message: 10/06/2009, 10h02
  5. [VBA] Probleme de caractères spéciaux dans nom de classeur
    Par RedBurn dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/12/2005, 19h13

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