Imposer des majuscules dans une cellule Excel

  • Initiateur de la discussion Initiateur de la discussion Daniel
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

Daniel

Guest
Bonjour à tous,
Je cherche à savoir comment on peut faire dans Excel pour imposer que quelque soit ce que l'on tape dans une cellule le format de ce qui aura été tapé soit en majuscule.
Merci pour votre aide.
Daniel
 
Bonjour Daniel,

Essaye ceci :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
  Application.EnableEvents = False
  Target.Value = UCase(Target.Value)
  Application.EnableEvents = True
End Sub


Note bien que les caractères accentués seront aussi mis en majuscules mais avec l'accent.
Attention aussi à Application.EnableEvents = False, si la macro plante pour une raison où une autre avant la remise à True, il faudra soit le remettre à la main dans la fenêtre exécution de VBA, soit redémarrer Excel. Je le met à False avant de modifier la cellule pour éviter le déclenchement du Worksheet_Change en cascade.

Bon appétit.

José
 
Re: Imposer des majuscules dans une cellule Excel. OUPS !

Re Daniel,

Je viens de m'apercevoir d'un bug quand on sélectionne plusieurs cellules pour les effacer par exemple.
Je te corrige ça après manger, on m'attend.

A+ et bon app'

José

PS: Désolé pour ce coup là.
 
Re re Daniel,

Bien, me revoici. J'ai donc rajouté un test pour savoir si la sélection en cours est une cellule simple ou une plage. Je n'ai trouvé que ce moyen, à savoir tester si l'adresse contient ":" ou "," (dans le cas d'une plage de cellules non contigues). Il y a peu être plus "élégant" mais j'avoue ne pas connaitre.
Note aussi que si tu fais une sélection multiple et que tu saisies dans la sélection, cela ne fonctionne plus car il y a un ":" ou une "," dans l'adresse. Mais je connais peu de gens qui saisissent de cette façon.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
  If InStr(Target.Address, ":") = 0 And InStr(Target.Address, ",") = 0 Then
    Application.EnableEvents = False
    Target.Value = UCase(Target.Value)
    Application.EnableEvents = True
  End If
End Sub


J'espère que cela te convient.

Bon week-end.

José
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour