Forcer la saisie en minuscules ou en majuscules

Comment forcer dans une cellule la saisie en minuscules ?

Première solution, utiliser la validation de données :
Données/validation.../Options/autoriser: Personnalisé Formule:
=EXACT(A1;MINUSCULE(A1)) (respectivement majuscule ou nompropre pour mettre la première lettre du mot en majuscule et le reste en minuscule)

ou, pour convertir directement les majuscules en minuscules à la sortie de la cellule:
Dans le code événementiel de la feuille en question, soit pour la cellule A1 dans l'exemple (à adapter),

Private sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
 [a1] = LCase([a1]) (Ucase pour les majuscules, Proper pour les noms propres)
 end sub

Si tu veux que cette conversion s'effectue sur une plage de cellules, pour les mettre en majuscule Dans le module de la feuille et pour la plage A1:B10 par exemple,

Private sub Worksheet_Change(ByVal zz As Range) 
 If Intersect(zz, [A1:B10]) Is Nothing Then exit sub 
 Application.EnableEvents = False 
 zz = UCase(zz) 
 Application.EnableEvents = True 
 end sub

Les instructions enableevents false puis true sont mises là parceque l'instruction zz = UCase(zz) redéclenche inutilement l'évènement Worksheet_Change donc --> "Application.EnableEvents = False" --> désactive les évènements "zz = UCase(zz)" --> met en majuscule "Application.EnableEvents = True" --> réactive les évènements

Auteurs : , ,

Mots clefs associés à cette page : , , ,