Menu

Liste déroulante + VBA, problèmes avec les majuscules [Résolu]

Messages postés
118
Date d'inscription
lundi 15 octobre 2018
Dernière intervention
11 février 2019
- - Dernière réponse : Yoyo01000
Messages postés
114
Date d'inscription
samedi 2 février 2019
Dernière intervention
19 février 2019
- 10 févr. 2019 à 20:59
Bonjour,

J'ai une liste déroulante avec "Oui" et "Non" comme choix
J'ai le code suivant:
If Worksheets("Options").Range("B2") = ("Oui") Then
option1 = "oui"

Quand l'utilisateur clique sur "Oui" dans la liste, j'ai bien la majuscule donc pas de soucis.
Mais si il écrit "oui" au clavier, la cellule l'accepte, mais pas la macro (qui considère que "oui" n'est pas = à "Oui")

J'ai pensé à If Worksheets("Options").Range("B2") = ("Oui") OR (la même chose) = ("oui") Then (etc etc)
cela marcherait si l'utilisateur saisi "oui" avec ou sans majuscule.

Mais c'est un peu naze, parcequ'on peut toujours, sur une faute de frappe, écrire "ouI" ou "oUi"... J'exagère un peu mais en soi c'est pas optimal. Surtout que l'utilisateur ne se rendra pas compte que le resultat en VBA ne renverra pas le bon truc!

à votre avis, quel est la piste à revoir?
1) la liste déroulante est un mauvais choix (plutot un bouton à cocher, par exemple?)
2) La macro est trop simple et avec une autre écriture, on peut éviter cette "sensibilité à la casse"?

Merci de me donner une piste si vous avez eu un cas de figure comme ça...

Bonne journée à tous!
Afficher la suite 

Votre réponse

3 réponses

Messages postés
114
Date d'inscription
samedi 2 février 2019
Dernière intervention
19 février 2019
14
0
Merci
Bonjour, pourquoi passer par VBA pour cela ?

Il suffirait de créer un menu déroulant sans VBA !
Commenter la réponse de Yoyo01000
Messages postés
114
Date d'inscription
samedi 2 février 2019
Dernière intervention
19 février 2019
14
0
Merci
Onglet "Données" et ensuite "Validation de données", dans "Options" choisir "Liste" et mettre "Oui;Non"
Anthelm
Messages postés
118
Date d'inscription
lundi 15 octobre 2018
Dernière intervention
11 février 2019
-
Je crois que tu n'as pas lu le sujet en entier :) Mais merci quand même!
Yoyo01000
Messages postés
114
Date d'inscription
samedi 2 février 2019
Dernière intervention
19 février 2019
14 -
Si, je l'ai lu en entier. Un menu déroulant sans VBA avec un blocage, si la casse n'est pas respectée, est faisable.
Anthelm
Messages postés
118
Date d'inscription
lundi 15 octobre 2018
Dernière intervention
11 février 2019
-
Ma liste déroulante est faite depuis la validation de donnée et je n'ai aucun moyen de forcer à respecter la casse, justement, il faudrait peut être que je la fasse en vba plutôt...
Yoyo01000
Messages postés
114
Date d'inscription
samedi 2 février 2019
Dernière intervention
19 février 2019
14 -
Dans "Validation de données" tu as un onglet "Alerte d'erreur" qui permet de palier à ça !
Commenter la réponse de Yoyo01000
Messages postés
118
Date d'inscription
lundi 15 octobre 2018
Dernière intervention
11 février 2019
0
Merci
Ok la solution est avec UCASE à mon avis.
Cela passe le résultat en majuscules.

If Worksheets("Options").Range("B2") = ("Oui")
le test est si = "Oui"
Donc si "oui", le résultat est faux à cause de la majuscule qui manque.

Mais si on fait:

If UCase(Worksheets("Options").Range("B2")) = ("OUI")
Autrement dit si le résultat en majuscules = OUI

Peu importe ce que l'utilisateur entre: "oUi" devient "OUI" et il est égal à "OUI", le résultat est vrai.
Commenter la réponse de Anthelm