ZOrder pour verificateur d'orthographe word (premier paln)

zied86 Messages postés 85 Date d'inscription dimanche 5 mars 2006 Statut Membre Dernière intervention 4 août 2014 - 20 mai 2011 à 11:21
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 20 mai 2011 à 13:23
Bonjour;
J'utilise le vérificateur d'orthographe de word avec ce code la
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 

tout va bien avec windows XP
mais lorsque j'ai migrer mon système vers windows7
quand j'appelle le vérificateur il existe un problème que le vérificateur n'est pas en premier plan donc mon programme ce ploque
j'ai chercher partout pour trouver une solution pour obliger le vérificateur d’être en premier plan mais sans résultat
est ce que quelqu'un peut m'aider et merci d'avance


Ellouze Zied

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
20 mai 2011 à 11:41
Salut

XP - Windows 7 : Ce qui importe surtout, c'est la version de Office.

"il existe un problème que le vérificateur n'est pas en premier plan"
Comment en es-tu arrivé à cette conclusion ?
Pourquoi penses-tu que cela puisse avoir une influence ? Parce que je ne vois pas trop le lien entre une instance d'objet et sa représentation à l'écran (il ne devrait d'ailleurs y en avoir)

As-tu ajouté une référence à Word dans ton projet ?
Parce que des définition "As Object", c'est vague, risqué et peu pratique lors du développement.
Si tu ajoutes une référence aux objets Word, tu pourras déclarer des variables plus précises et, surtout, profiter de l'intellisence, c'est à dire les syntaxes qui apparaissent lorsque tu tapes le point derrière un le nom d'un objet + accès à l'explorateur d'objet de VB (touche F2)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
20 mai 2011 à 13:23
lol, je viens de tester ton code (*) et je comprends mieux ton histoire de fenêtre. Désolé.
Je viens de voir que ton code était celui de <cette source>

Comme expliqué dans les commentaires de cette source, il y a d'autres méthodes pour récupérer les mots suggérés :
- Tu ajoutes la référence à "Microsoft Word X.0 Object Library" où le X représente ta version de Office
- Et tu gères toi même la liste des mots proposés :
Function New_VerifOrthographe(TxtVérif As String) As String

    Dim oWord           As Word.Application
    Dim oDocument       As Word.Document
    Dim oSuggestions    As Word.SpellingSuggestions
    Dim oSuggestion     As Word.SpellingSuggestion
    
    Set oWord = New Word.Application
    Set oDocument = New Word.Document
    oDocument.Activate
    oDocument.ActiveWindow.Visible = False
    
    Set oSuggestions = oDocument.Application.GetSpellingSuggestions(TxtVérif, , , , WdSpellingWordType.wdSpellword)
    
    For Each oSuggestion In oSuggestions
        Debug.Print oSuggestion.Name
    Next

    oDocument.Close False
    oWord.Quit
    Set oWord = Nothing

End Function
0
Rejoignez-nous