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 :

Vérification InputBox alphanumérique [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
    Femme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 32
    Par défaut Vérification InputBox alphanumérique
    Bonjour,

    Je souhaite vérifier que l'utilisateur de la macro ait bien entré un mot, et non des chiffres, dans mon InputBox ?

    Je sais qu'il est possible de vérifier si le mot insérer en InputBox est un chiffre par :
    If Not IsNumeric(matricule) [..]

    Mais l'inverse m’intéresserais..


    Bonne journée,

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Il va falloir utiliser de les codes ASCII... s'il y a des accents ou des lettres bizzares telles que les n espagnols... ca risque d'être un peu chiant

  3. #3
    Membre averti
    Femme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 32
    Par défaut
    je pense pas qu'il y aura des n espagnols mais surment de é è à ..
    Qu'est ce que sont ces codes ?

  4. #4
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Function tester(mot As String) As Boolean
    Dim i As Integer
    mot = UCase(mot)
    tester = True
    For i = 1 To Len(mot)
    If Asc(Mid(mot, i, 1)) < 65 Or Asc(Mid(mot, i, 1)) > 90 And Asc(Mid(mot, i, 1)) <> 201 And Asc(Mid(mot, i, 1)) <> 200 Then
    tester = False
    End If
    Next i
    End Function
    Rajoute dans ton if les lettres que tu veux en testant leur code ASCII avec ce sub

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub toto()
    MsgBox (Asc(UCase("è")))
    End Sub
    Dans ton code tu auras

    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
    Sub machinchose()
     
    'code
     
    x = inputbox("blabla")
     
    'Tu fais
    If tester(x) then
    msgbox("c'estbon")
    Else
    msgbox("c'estpasbon")
    end if
     
    'code
    End sub

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Bonjour,

    Peut être une piste avec le code suivant
    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
    32
    Sub aa()
    Dim reponse As Variant
    Dim i&
    Dim bool As Boolean
     
    Do
      reponse = Application.InputBox(prompt:="Mon message", Title:="Mon titre", Type:=2)
      If reponse = False Or reponse = "" Then Exit Sub
     
    '  '--- présence de nombre ---
    '  For i& = 1 To Len(reponse)
    '    If IsNumeric(Mid(reponse, i&, 1)) Then
    '      MsgBox "Aucun nombre n'est admis "
    '      Exit For
    '    End If
    '  Next i&
     
    '/// ou alors
     
        '--- présence d'au moins un caractère alphabétique ---
      For i& = 1 To Len(reponse)
        If Not IsNumeric(Mid(reponse, i&, 1)) Then
          bool = True
          Exit Do
        End If
      Next i&
     
    Loop
     
    If bool Then MsgBox "Présence d'au moins un caractère alphabétique : " & reponse
     
    End Sub

  6. #6
    Membre averti
    Femme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 32
    Par défaut
    Cela fait :

    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
    Sub nouveau ()
     
    Function tester(mot As String) As Boolean
    Dim i As Integer
    mot = UCase(mot)
    tester = True
    For i = 1 To Len(mot)
    If Asc(Mid(mot, i, 1)) < 65 Or Asc(Mid(mot, i, 1)) > 90 And Asc(Mid(mot, i, 1)) <> 201 And Asc(Mid(mot, i, 1)) <> 200 Then
    tester = False
    End If
     
    Next i
    End Function
     
    Mot = InputBox ("Quel est le mot que vous voulez ajouter ?")
    While If tester(Mot) then 
           Range("A1") = mot
     
    Wend
     
    MsgBox ("Ce n'est pas un mot (composé de lettres).")
     
    End Sub
    C'est ça ?

  7. #7
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    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
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Function tester(mot As String) As Boolean
    Dim i As Integer
    mot = UCase(mot)
    tester = True
    For i = 1 To Len(mot)
    If Asc(Mid(mot, i, 1)) < 65 Or Asc(Mid(mot, i, 1)) > 90 And Asc(Mid(mot, i, 1)) <> 201 And Asc(Mid(mot, i, 1)) <> 200 Then
    tester = False
    End If
    Next i
    End Function
     
    Sub nouveau ()
     
    Mot = InputBox ("Quel est le mot que vous voulez ajouter ?")
    If tester(Mot) then 
    Range("A1") = mot
    else
    MsgBox ("Ce n'est pas un mot (composé de lettres).")
    End if
     
    End Sub

  8. #8
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour.
    Citation Envoyé par Laura27600 Voir le message
    Je sais qu'il est possible de vérifier si le mot insérer en InputBox est un chiffre par :
    If Not IsNumeric(matricule) [..]

    Mais l'inverse m’intéresserais.
    Ah non, là tu vérifies justement que ce n'est pas une valeur numérique admise, donc un mot contenant ou pas des chiffres …

    L'inverse de If Not IsNumeric(matricule) est If IsNumeric(matricule)

    Donc une présentation claire et exhaustive aurait été vraiment un plus pour une solution directe et donc rapide !

    Il y a aussi la possibilité de contrôler à la volée la saisie dans un UserForm

    Et merci d'utiliser l'icône # dévolue au code !

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

Discussions similaires

  1. Vérification saisie InputBox
    Par turbif08 dans le forum VBScript
    Réponses: 15
    Dernier message: 06/12/2013, 18h49
  2. Réponses: 10
    Dernier message: 09/10/2013, 18h26
  3. Vérification d'un InputBox
    Par oMeG4 dans le forum VBA Access
    Réponses: 6
    Dernier message: 20/03/2007, 16h07
  4. [VB.NET] Vérification d'existance d'une table
    Par Hoegaarden dans le forum Windows Forms
    Réponses: 3
    Dernier message: 18/05/2004, 10h17
  5. JavaScript de vérification de formulaire
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 6
    Dernier message: 26/02/2003, 13h48

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