OVH Cloud OVH Cloud

Word, Automation, Dialogs et propriété visible

8 réponses
Avatar
Frédéric Steczycki
Bonjour,

Dans un programme écrit en Visual FoxPro, j'utilise Word pour la correction
orthograpique de certains champs d'une table.

Pour ce faire, je rend Word invisible (oWord.visible=false) et j'ouvre la
Dialogs(wdDialogToolsSpellingAndGrammar).

Après correction, la fermeture de cette boîte de dialogue rend Word visible,
ce qui n'est pas d'un très bel effet. dans une boucle..

Sous Excel, il y a deux propriétés qui n'existent pas sous Word
(DisplayAlert et Interactive). Je n'en trouve pas l'équivalence...

Auriez vous une solution pour rendre Word invisible en mode Automation (tout
en concervant cette dialogue active, biensur <s>)

Merci

Fred

8 réponses

Avatar
Anacoluthe
Bonjour !

'Frédéric Steczycki' nous a écrit ...
Dans un programme écrit en Visual FoxPro, j'utilise Word pour la correction
orthograpique de certains champs d'une table.
Pour ce faire, je rend Word invisible (oWord.visibleúlse) et j'ouvre la
Dialogs(wdDialogToolsSpellingAndGrammar).
Après correction, la fermeture de cette boîte de dialogue rend Word visible,
ce qui n'est pas d'un très bel effet. dans une boucle..
Sous Excel, il y a deux propriétés qui n'existent pas sous Word
(DisplayAlert et Interactive). Je n'en trouve pas l'équivalence...


Minimisez la fenêtre du document temporaire Word.
L'application Word n'a pas la propriété Interactive mais
a bien DisplayAlerts et ScreenUpdating

Anacoluthe
« Le mauvais temps semble toujours pire
lorsqu'on le regarde par la fenêtre. »
- John KIERAN

Avatar
Frédéric Steczycki
Bonjour Anacoluthe et merci

Minimisez la fenêtre du document temporaire Word.


un petit nom de méthode pour m'aider ;)

L'application Word n'a pas la propriété Interactive mais
a bien DisplayAlerts et ScreenUpdating


ScreenUpdating n'est pas modifiée par la dialogue (comme l'est visible) ?
Parfait donc

Je teste ça...


Anacoluthe
« Le mauvais temps semble toujours pire
lorsqu'on le regarde par la fenêtre. »
- John KIERAN


Fred

"A la saint glin-glin, tagada tsoin tsoin"
- Fred
;)

Avatar
Geo
Bonjour Fred


Bonjour Anacoluthe et merci

Minimisez la fenêtre du document temporaire Word.


un petit nom de méthode pour m'aider ;)


Je dirais : Minimize, il y a dans l'aide un exemple, curieusement ils
l'appliquent à Excel
-----------------
Cet exemple montre comment réduire en icône la fenêtre de
l'application Microsoft Excel.
For Each myTask In Tasks
If InStr(myTask.Name, "Microsoft Excel") > 0 Then
myTask.Activate
myTask.WindowState = wdWindowStateMinimize
End If
Next myTask
-----------------
Ps si tu as des questions sur les shapes et les inlineShapes,
profites-en, Anacoluthe est le spécialiste ;-)

--

A+


Avatar
Frédéric Steczycki
Bonjour Geo, Anacoluthe

Je dirais : Minimize, il y a dans l'aide un exemple, curieusement ils
l'appliquent à Excel


bip ! non non, c'est la propriété WindowState de l'objet Application, merci
quand même.

En conclusion, un mélange de word.visible, word.windowstate et
word.screenupdating résoud le problème.

Merci à tous.

Fred

PS: par contre, je me heurte à un autre problème mais là, pas de solution en
vue :
activedocument a une méthode Close et un évènement Close. Il semble que
l'appel via l'automation de activedocument.close pose problème car word ne
sait que choisir... bref, je commencerai peut être un autre fil ;)
le but étant de quitter word sans avoir de prompt pour la sauvegarde du
document temporaire...

Avatar
Geo
Bonjour Fred

le but étant de quitter word sans avoir de prompt pour la sauvegarde
du document temporaire...


Tu lui fais croire que le document est sauvegardé avant de la fermer :
MonDocument.saved = true

Le MonDocument.close se fait sans question.

--

A+

Avatar
Frédéric Steczycki
Bonjour Geo

Ps si tu as des questions sur les shapes et les inlineShapes,
profites-en, Anacoluthe est le spécialiste ;-)


Merci pour cette proposition (honnête, une fois n'est pas coutume <s>)...

il semble qu'Eto, n'ayant pas donné suite, doit avoir résolu son problème...

Par contre, pour ma culture perso, je suis ouvert aux éventuelles
explications ;)

Fred
Ps: si le fil vous interesse
news:
sur news://msnews.microsoft.com/microsoft.public.fr.fox

Avatar
Geo
Bonjour Fred

Par contre, pour ma culture perso, je suis ouvert aux éventuelles
explications ;)


En fait c'est exactement l'inverse de ce que j'ai dit sur le forum :
(extrait de l'aide)
La collection Shapes ne contient pas d'objets InlineShape. Les objets
InlineShape sont traités comme des caractères et, en tant que tels,
placés sur une ligne de texte. Les objets Shape sont ancrés à une
plage de texte mais sont flottants et peuvent être placés n'importe où
sur la page.
---------------------------------
Par contre ce que je n'avais pas vu c'est qu'il essayait de passer ses
paramètre comme en fox :
oWord.Selection.Shapes.AddPicture("C:Documentsimage.jpg",.F.,.F.,20,
20,20,20,0)
c'est pas .F. c'est False,
Vieux problème de non harmonisation entre les applis.

--
A+

Avatar
Frédéric Steczycki
Bonjour Geo

Par contre ce que je n'avais pas vu c'est qu'il essayait de passer ses
paramètre comme en fox :
oWord.Selection.Shapes.AddPicture("C:Documentsimage.jpg",.F.,.F.,20,
20,20,20,0)
c'est pas .F. c'est False,


c'est bien .F. (la notation pour false, de même que .T. = true, un vieux
reliquat du dBase ;) ) qu'il faut utiliser en VFP. Par contre il a l'air de
dire que ça ne fonctionne pas...
peut être une trop ancienne version de Word...

Fred