1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| '---------------------------------------------------------------------------------------
Function ControleOrthographe(RngAnalyse As Range, _
Dictionnaire As MsoLanguageID, _
CouleurSiErreur As Long, _
ActionSiErreur As Byte) As Boolean
'---------------------------------------------------------------------------------------
' Controle l'orthographe d'une plage.
'---------------------------------------------------------------------------------------
' RngAnalyse : la plage à analyser.
' Dictionnaire : dictionnaire à utiliser de l'énumération MsoLanguageID.
' exemples : msoLanguageIDFrench français, msoLanguageIDEnglishUS anglais.
' CouleurSiErreur : si <> 0 met le texte en erreur de la couleur demandée.
' ActionSiErreur : action à faire en cas d'erreur d'orthographe.
' 0 = continue l'analyse.
' 1 = sélectionne la cellule et quitte la fonction.
' 2 = sélectionne la cellule et ouvre le dictionnaire pour corriger le texte
' puis continue l'analyse.
'---------------------------------------------------------------------------------------
' Renvoie : True si aucune faute ou False dans le cas contraire.
'---------------------------------------------------------------------------------------
' Exemple d'appel de la fonction:
' Debug.Print ControleOrthographe(RngAnalyse:=ActiveSheet.UsedRange, _
' Dictionnaire:=msoLanguageIDFrench, _
' CouleurSiErreur:=0, _
' ActionSiErreur:=2)
'---------------------------------------------------------------------------------------
Dim cl As Range
ControleOrthographe = True
' Gestion des erreurs:
On Error GoTo Gest_Err
Err.Clear
' Trouve une cellule vide dans la feuille pour définir le dictionnaire à utiliser:
For Each cl In ActiveSheet.Cells
If cl.Value = "" Then
Call cl.CheckSpelling(, , , Dictionnaire)
Exit For
End If
Next cl
' Boucle sur les cellules pour vérifier l'orthographe:
For Each cl In RngAnalyse
' En cas d'erreur:
If Application.CheckSpelling(cl.Value) = False Then
' La fonction renverra False:
ControleOrthographe = False
' S'il faut changer la couleur du texte:
If CouleurSiErreur <> 0 Then cl.Font.Color = CouleurSiErreur
' Action demandée:
If ActionSiErreur = 1 Then
cl.Select
Exit For
End If
If ActionSiErreur = 2 Then
cl.Select
Call cl.CheckSpelling(, , , Dictionnaire)
End If
End If
Next cl
' Gestion des erreurs:
Gest_Err:
If Err.Number <> 0 Then
ControleOrthographe = False
MsgBox Err.Number & " : " & Err.Description, vbCritical, "Contrôle de l'orthographe"
Err.Clear
End If
End Function
'--------------------------------------------------------------------------------------- |
Partager