formateur informatique

Trouver toutes les fautes d'orthographe dans la feuille

Accueil  >  Bureautique  >  Excel  >  Excel VBA  >  Trouver toutes les fautes d'orthographe dans la feuille
Livres à télécharger


Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :


Inscription Newsletter    Inscription Newsletter
Sujets que vous pourriez aussi aimer :


Repérer les fautes d'orthographe

Avec cette nouvelle astuce VBA Excel, nous poursuivons les découvertes de techniques permettant d'engager des traitements de masse automatisés sur les cellules de la feuille. Ici, le sujet est plutôt original concernant le tableau Excel. Il est question d'identifier en couleur toutes les cellules hébergeant des fautes d'orthographe à corriger.

Repérer en couleur toutes les cellules des fautes d-orthographe en VBA Excel

Sur l'exemple illustré par la capture, nous travaillons à partir d'un tableau garni de fautes. Mais il n'est pas toujours évident de les repérer toutes d'un seul coup d'oeil, à plus forte raison lorsque la base de données est dense. De fait, l'utilisateur clique sur un bouton placé sur la droite du tableau. Instantanément, toutes les cellules avec des fautes surgissent en couleur. Il ne reste plus qu'à les corriger et à repasser le traitement du bouton pour que tout rentre dans l'ordre. Il s'agit donc d'un mécanisme précieux et fort productif à exercer sur les tableaux longs à contrôler.



Classeur Excel à télécharger
Pour la mise en place de la solution, nous proposons de récupérer un classeur hébergeant ces fautes à déceler. Nous retrouvons bien le petit tableau avec les nombreuses fautes qui le jalonnent. Par exemple, dès la première cellule de la première colonne, on peut noter la lettre t manquante dans le mot Carottes. Mais sans repères visuels, difficile d'être précis et rapide dans les corrections à entreprendre, surtout si les lignes du tableau se multiplient.

La variable de cellule
Comme il s'agit d'un traitement global, nous souhaitons influer sur toutes les cellules utilisées dans la feuille Excel. De cette manière, l'utilisateur n'aura pas à sélectionner préalablement une plage à examiner.
  • Réaliser le raccourci clavier ALT + F11 pour basculer dans l'éditeur VBA Excel,
Nous découvrons ainsi une procédure de code existante, certes encore vierge à ce stade.

Sub repererFautes()

End Sub


Mais elle est d'ores et déjà attachée au bouton. Nous n'avons plus qu'à l'implémenter. D'ailleurs, pour une telle fonctionnalité, il aurait été intéressant de coder cette macro dans le modèle Excel (Personal.xlsb). Ainsi, un clic sur un bouton associé dans un ruban personnalisé aurait permis d'engager la correction orthographique sur n'importe quelle feuille de n'importe quel classeur. Mais ici, c'est le développement de la solution qui nous intéresse. Sub repererFautes()
Dim cellule As Range

End Sub


Un objet de type Range désigne une plage de cellules ou à défaut, une seule cellule.



Parcourir les cellules de la feuille
Et précisément, c'est cette variable cellule que nous allons exploiter pour parcourir les cellules utilisées sur la feuille Excel. Et pour cela, le VBA Excel offre une propriété de feuille fort intéressante. Elle se nomme UsedRange. Elle porte bien son nom. Elle permet de considérer toutes les cellules qui portent un texte ou au moins une mise en forme.
  • A la suite du code, créer la boucle For Each suivante :
...
For Each cellule In ActiveSheet.UsedRange

Next cellule
...


ActiveSheet est un objet qui désigne la feuille active. Grâce à sa propriété UsedRange et à l'objet cellule à gauche de l'instruction, nous allons pouvoir analyser toutes les cellules utiles.

Ignorer les cellules de la première ligne
Mais avant de poursuivre, nous devons gérer une petite exception. Les cellules de la première ligne ne sont pas à considérer. Il s'agit de liens hypertextes qui seraient détectés comme de mots non reconnus. Pour cela, rien de plus simple, à chaque passage dans la boucle For Each, il suffit de vérifier que la ligne de la cellule en cours d'analyse n'est pas la première.
  • Dans les bornes de la boucle, ajouter l'instruction conditionnelle suivante :
...
If cellule.Row > 1 Then

End If
...


Très simplement, nous exploitons la propriété Row de l'objet cellule pour vérifier que l'indice de ligne de la cellule en cours d'analyse est bien supérieur à 1.



Vérifier les fautes d'orthographe
L'objet VBA Application offre une méthode tout à fait remarquable. Elle se nomme CheckSpelling. Elle permet de vérifier l'orthographe du texte qui lui est passé en paramètre. Dans notre cas, il s'agit du contenu de la cellule en cours d'analyse. Lorsqu'aucune faute n'est décelée, elle répond par True. Nous devons donc émettre un nouveau test, sur l'orthographe de la cellule cette fois.
  • Dans les bornes de l'instruction conditionnelle, créer la nouvelle condition suivante :
...
If Application.CheckSpelling(cellule.Value) Then

Else

End If
...


Nous prévoyons deux branches dans cette nouvelle instruction conditionnelle. La première est destinée à rétablir la mise en forme d'origine des cellules si d'aventure les anciennes fautes d'orthographes avaient été corrigées dans le laps de temps. Dans le cas contraire (else), la seconde branche intervient. Elle est destinée à appliquer des attributs de format spécifiques pour faire ressortir les cellules incriminées.

Passer les fautes en couleur
Il ne nous reste donc plus qu'à opérer ces réglages de mise en forme.
  • Dans la première branche de l'instruction conditionnelle, ajouter le bloc With suivant :
...
With cellule
.Interior.ThemeColor = xlThemeColorDark2
.Font.Bold = False
End With
...


Nous exploitons l'objet cellule à deux reprises. Plutôt que de répéter son nom, nous optimisons le code avec un bloc with pour lister ses propriétés à affecter. La propriété enfant ThemeColor de la propriété Interior pour l'objet cellule, permet de modifier la couleur de fond avec des attributs évolués issus de la palette du ruban Accueil. Avec la valeur xlThemeColorDark2, nous appliquons un gris clair au fond de la cellule. Une macro automatique fournirait ce code. Ensuite, nous enlevons le style gras (.Font.Bold = False), si d'aventure la faute avait été corrigée entre temps.

Dans le cas contraire, les attributs de format ne doivent pas être annulés mais forcés pour faire ressortir les cellules des fautes d'orthographe. La technique est identique. Seules les valeurs des attributs changent.
  • Dans la branche Else de l'instruction conditionnelle, créer le bloc With suivant :
...
With cellule
.Interior.ThemeColor = xlThemeColorAccent4
.Font.Bold = True
End With
...


Cette fois, c'est un jaune orangé que nous appliquons au fond de la cellule avec un style gras pour le texte.
  • Enregistrer les modifications (CTRL + S) et basculer sur la feuille Excel (ALT + Tab),
  • Puis, cliquer sur le bouton Trouver Fautes,
Instantanément et comme vous pouvez l'apprécier, toutes les cellules des fautes d'orthographe apparaissent dans des mises en valeur explicitement différentes. Si vous corrigez certaines de ces erreurs orthographiques et que vous cliquez de nouveau sur le bouton Trouver Fautes, vous constatez que les couleurs disparaissent, validant les corrections apportées.

Mettre en couleur les cellules Excel avec des fautes d-orthographe en VBA

Le code complet de la procédure VBA que nous avons accomplie est le suivant :

Sub repererFautes()
Dim cellule As Range
For Each cellule In ActiveSheet.UsedRange
If cellule.Row > 1 Then
If Application.CheckSpelling(cellule.Value) Then
With cellule
.Interior.ThemeColor = xlThemeColorDark2
.Font.Bold = False
End With
Else
With cellule
.Interior.ThemeColor = xlThemeColorAccent4
.Font.Bold = True
End With
End If
End If
Next cellule
End Sub


 
Sur Facebook
Sur Youtube
Les livres
Contact
Mentions légales



Abonnement à la chaîne Youtube
Partager la formation
Partager sur Facebook
Partager sur Twitter
Partager sur LinkedIn