Vérificateur d'orthographe

Soyez le premier à donner votre avis sur cette source.

Vue 24 413 fois - Téléchargée 660 fois

Description

Ce code permet d'utiliser le vérificateur de MS Word (Word doit être installé, mais on ne le voit pas). On peut donc contrôler et corriger un texte (d'une zone de texte par exemple) dans plusieurs langues.

Source / Exemple :


Public Function VerifOrthographe(TxtVérif As String) As String
    'Cette fonction ouvre un projet (invisible) Microsoft Word
    'et utilise le vérificateur d'othographe.
    'Les corrections sont récupérées.
    
    'Variables
    Dim ObjMSWord As Object
    Dim TxtProv As String
    
    'Y a-t'il du texte à vérifier ?
    If TxtVérif = "" Then
        MsgBox "Rien à vérifier !", vbExclamation
        Exit Function
    End If
    
    'Pointeur "sablier"
    Screen.MousePointer = 11
    
    'Définition de l'objet Word et appel de l'outil de vérification de l'orthographe
    Set ObjMSWord = CreateObject("Word.Basic")
    With ObjMSWord
        .FileNew
        .Insert TxtVérif
        .ToolsSpelling ObjMSWord.EditSelectAll
        .SetDocumentVar "TexteAVerifier", ObjMSWord.Selection
    End With
    
    'Récupération du texte (corrigé) après vérification
    TxtProv = ObjMSWord.GetDocumentVar("TexteAVerifier")
    TxtProv = Left(TxtProv, Len(TxtProv) - 1)
    
    If TxtProv = "" Then
        'Opération annulée par l'utilisateur
        VerifOrthographe = TxtVérif
    Else
        VerifOrthographe = TxtProv
    End If
    
    'Fermeture du document provisoire et de Word
    ObjMSWord.FileCloseAll 2
    ObjMSWord.AppClose
    Set ObjMSWord = Nothing
    
    'Pointeur standard
    Screen.MousePointer = 0
    
    'Message en cas de bon déroulement de l'opération
    If TxtProv = "" Then
        MsgBox "Vérification ignorée !", vbExclamation
    Else
        MsgBox "Vérification terminée !", vbInformation
    End If
      
End Function

Conclusion :


Comme indiqué, Word doit être installé. Encore un petit problème que je résoudrait dès que j'aurai le temps: il faut que la vérif soit effectuée jusqu'à la fin pour que les modifications soient prises en compte.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_shivan
Messages postés
363
Date d'inscription
jeudi 20 décembre 2001
Statut
Membre
Dernière intervention
25 août 2003
-
pas testé si ca marche, mais si ca marche, un gros bravo !!!
cs_shivan
Messages postés
363
Date d'inscription
jeudi 20 décembre 2001
Statut
Membre
Dernière intervention
25 août 2003
-
bon ben ca marche !!!!!

BRAVO !!!!!!!

10/10 !
ludkill
Messages postés
8
Date d'inscription
mercredi 14 août 2002
Statut
Membre
Dernière intervention
12 juillet 2007
-
Et ben je te felicite car ca je cherchais ce script afin de l'incruster dans un jeu que j'ai créé(le mot le plus long). Ben ca marche niquel alors merci beaucoup. Si je trouve le moyen de l'optimiser je te tiens au courant ;o) .
surfzoid
Messages postés
467
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
21 avril 2010
-
Marche nickel sous VB6 et presque sous vb.net il y a semble t il la methode : "ToolsSpelling ObjMSWord.EditSelectAll" qui à evoluer et comme avec toute ces api y a pas l aide dynamique ni forcement toute l autocompletion ben c est rude
si tu as eut le courage de l adapter au point net tu m enleverai une enorme epine du pied LOL
@++ et BP
surfzoid
Messages postés
467
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
21 avril 2010
-
A y est j ai la reponse pour ceux que ca interesse et merci encore jray 10/10 sans conteste
voici donc ton code adapté pour le VB7 de .NET
Module ortoword

Public Function VerifOrthographe(ByRef TxtVérif As String) As String
'Cette fonction ouvre un projet (invisible) Microsoft Word
'et utilise le vérificateur d'othographe.
'Les corrections sont récupérées.

'Variables
Dim ObjMSWord As Object
Dim test As New Word.ApplicationClass
Dim TxtProv As String

'Y a-t'il du texte à vérifier ?
If TxtVérif = "" Then
MsgBox("Rien à vérifier !", MsgBoxStyle.Exclamation)
Exit Function
End If

'Pointeur "sablier"
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor

'Définition de l'objet Word et appel de l'outil de vérification de l'orthographe
ObjMSWord = CType(CreateObject("Word.Basic"), Object)
With ObjMSWord
.FileNew()
.Insert(TxtVérif)
.ToolsSpelling()
.EditSelectAll()
TxtProv = .Selection
End With

'Récupération du texte (corrigé) après vérification
TxtProv = Left(TxtProv, Len(TxtProv) - 1)

If TxtProv = "" Then
'Opération annulée par l'utilisateur
VerifOrthographe = TxtVérif
Else
VerifOrthographe = TxtProv
End If

'Fermeture du document provisoire et de Word
ObjMSWord.FileCloseAll(2)
ObjMSWord.AppClose()
ObjMSWord = Nothing

'Pointeur standard
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default

'Message en cas de bon déroulement de l'opération
If TxtProv = "" Then
MsgBox("Vérification ignorée !", MsgBoxStyle.Exclamation)
Else
MsgBox("Vérification terminée !", MsgBoxStyle.Information)
End If

End Function

End Module

Bien sur ont est pas obliger de mettre ta function dans un module LoL
@++ et Bp

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.