Si vous développez une feuille de calcul pour d’autres utilisateurs, vous souhaiterez peut-être qu’ils saisissent toujours les informations en majuscules. Excel fournit une fonction de feuille de calcul qui vous permet de convertir des informations en majuscules, mais cela ne s’applique pas car les gens entrent réellement des informations. Par exemple, si quelqu’un entre des informations dans la cellule B6, la fonction de feuille de calcul ne peut pas être utilisée pour convertir les informations de B6 en majuscules.

Au lieu de cela, vous devez utiliser une macro pour effectuer la modification à votre place. Lors de la programmation dans VBA, vous pouvez forcer Excel à exécuter une macro particulière chaque fois que quelque chose est modifié dans une cellule de feuille de calcul. La macro suivante peut être utilisée pour convertir toutes les entrées de la feuille de calcul en majuscules:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.HasFormula Then Exit Sub         Application.EnableEvents = False         Target = UCase(Target.Cells(1))

Application.EnableEvents = True End Sub

Pour que la macro fonctionne, cependant, elle doit être saisie à un endroit spécifique.

Suivez ces étapes pour placer la macro:

  1. Affichez l’éditeur VBA en appuyant sur Alt + F11.

  2. Dans la fenêtre Projet, sur le côté gauche de l’éditeur, double-cliquez sur le nom de la feuille de calcul que vous utilisez. (Vous devrez peut-être d’abord ouvrir le dossier VBAProject, puis ouvrir le dossier Objets Microsoft Excel en dessous.)

  3. Dans la fenêtre de code de la feuille de calcul, collez la macro ci-dessus.

  4. Fermez l’éditeur VBA.

Désormais, tout ce qui est entré dans une cellule de la feuille de calcul (à l’exception des formules) sera automatiquement converti en majuscules. Si vous ne voulez pas que tout soit converti, mais uniquement les cellules d’une zone particulière de la feuille de calcul, vous pouvez modifier légèrement la macro:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not (Application.Intersect(Target, Range("A1:B10")) _       Is Nothing) Then         With Target             If Not .HasFormula Then                 Application.EnableEvents = False                 .Value = UCase(.Value)

Application.EnableEvents = True             End If         End With     End If End Sub

Dans cet exemple particulier, seul le texte saisi dans les cellules A1: B10 sera converti; tout le reste restera tel quel. Si vous devez convertir une plage différente, spécifiez cette plage dans la deuxième ligne de la macro.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (9813) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365. Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:

link: / excel-Forcing_Input_to_Uppercase [Forcer l’entrée en majuscules].