ZOrder pour verificateur d'orthographe word (premier paln)
zied86
Messages postés85Date d'inscriptiondimanche 5 mars 2006StatutMembreDernière intervention 4 août 2014
-
20 mai 2011 à 11:21
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 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
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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