Aller au contenu
Nathan Fauconnier, profil LinkedIn (nouvel onglet)

Souligner les fautes d’orthographe dans Excel avec VBA

Comme dans Word, une saisie mal orthographiée passe en rouge, doublement soulignée, dès que l’on valide la cellule.

La démonstration en vidéo

Vidéo publiée sur LinkedIn, chargée seulement si vous cliquez dessus. Au clic, LinkedIn peut déposer des traceurs sur votre appareil : en savoir plus.

Thème
VBA
Niveau
Intermédiaire
Publiée le
Fonctions et notions
  • Worksheet_Change
  • Application.CheckSpelling
  • Font.Underline
Pour aller plus loin
Formation Macros VBA

L’explication

Comment faire, pas à pas

Excel dispose d’un vérificateur d’orthographe (Révision, Orthographe), mais il ne travaille que sur demande : rien ne signale une faute au moment de la saisie. Quelques lignes de VBA comblent ce manque grâce à Application.CheckSpelling, qui renvoie True si le mot est correctement orthographié et False sinon.

Le code se place dans l’événement Worksheet_Change de la feuille, qui se déclenche à chaque modification de cellule. Si CheckSpelling renvoie False, la cellule passe en rouge avec un double soulignement. Sinon, le soulignement est retiré et la couleur revient à l’automatique : une faute corrigée efface d’elle-même son signalement.

À savoir CheckSpelling vérifie un mot, pas une phrase : la méthode convient aux cellules qui contiennent un seul mot, comme une liste de métiers. Si plusieurs cellules sont modifiées d’un coup (collage, suppression), Target.Value devient un tableau et la macro s’arrête sur une erreur. Classeur .xlsm, macros autorisées.

Le code VBA Dans le module de la feuille à surveiller (clic droit sur l’onglet, Visualiser le code), et non dans un module standard : Worksheet_Change est un événement de feuille.
Private Sub Worksheet_Change(ByVal Target As Range)

  If Application.CheckSpelling(Target.Value) = False Then

    ' --- Si une faute d'orthographe est détectée ---

    'Double soulignement
    Target.Font.Underline = xlUnderlineStyleDouble

    'Couleur de la police en rouge
    Target.Font.Color = 255

  Else

    ' --- Ou si le mot est correctement écrit ---

    'Arrêt du double soulignement
    Target.Font.Underline = False

    'Couleur de la police en automatique (noir)
    Target.Font.ColorIndex = xlAutomatic

  End If

End Sub

Pour aller plus loin

D’autres astuces à découvrir

Toutes les astuces Formation Macros VBA

Prendre contact

Vous souhaitez vous former ou former vos équipes ?

Votre contexte suffit pour démarrer : nombre de personnes concernées, outils en place, échéance. Je réponds avec une proposition de programme et un devis.

En présentiel Selon votre localisation
À distance Toute la France
Financement souhaité
Contact