OVH Cloud OVH Cloud

Automation Word.

2 réponses
Avatar
Via
Bonjour à tous.

Après une matinée de tentatives infructueuses à base de plantages de VB
voire du système...
J'aimerais faire la chose suivante avec Automation (ou toute autre méthode
d'ailleurs, je veux que ça marche, c'est tout) :

- Ouvrir un fichier Word (par exemple C:\Test.doc)
- Paramètrer les marges d'impression à l'aide du code suivant :
With ActiveDocument.PageSetup
.TopMargin = CentimetersToPoints(2)
.BottomMargin = CentimetersToPoints(2)
.LeftMargin = CentimetersToPoints(2)
.RightMargin = CentimetersToPoints(2)
End With
- Imprimer
- Fermer le fichier

et ceci en arrière-plan, afin que l'utilisateur utilisant mon application
VB6 ne voit pas Word s'ouvrir et se fermer.
Toute documentation / information sur Automation dans VB6 pour Word est
bienvenue...
Merci d'avance,

Via :)

2 réponses

Avatar
François Picalausa
Hello,

tu peux essayer ceci:
Dim WordApp As Object
Dim WordDoc As Object

Set WordApp = CreateObject("Word.Application")
WordApp.Visible = False
Set WordDoc = WordApp.Documents.Open("c:...toto.doc")

With WordDoc.PageSetup
.TopMargin = WordApp.CentimetersToPoints(2)
.BottomMargin = WordApp.CentimetersToPoints(2)
.LeftMargin = WordApp.CentimetersToPoints(2)
.RightMargin = WordApp.CentimetersToPoints(2)
End With

WordDoc.printout
WordDoc.Close
WordApp.quit

--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net

"Via" a écrit dans le message de
news:ePKy7$
Bonjour à tous.

Après une matinée de tentatives infructueuses à base de plantages
de VB voire du système...
J'aimerais faire la chose suivante avec Automation (ou toute autre
méthode d'ailleurs, je veux que ça marche, c'est tout) :

- Ouvrir un fichier Word (par exemple C:Test.doc)
- Paramètrer les marges d'impression à l'aide du code suivant :
With ActiveDocument.PageSetup
.TopMargin = CentimetersToPoints(2)
.BottomMargin = CentimetersToPoints(2)
.LeftMargin = CentimetersToPoints(2)
.RightMargin = CentimetersToPoints(2)
End With
- Imprimer
- Fermer le fichier

et ceci en arrière-plan, afin que l'utilisateur utilisant mon
application VB6 ne voit pas Word s'ouvrir et se fermer.
Toute documentation / information sur Automation dans VB6 pour Word
est bienvenue...
Merci d'avance,

Via :)


Avatar
Via
Merci François ! Ca fonctionne parfaitement.
Je joue donc maintenant à chercher la petite bête : j'ai deux boutons,
l'un pour imprimer, pour lequel tu m'as donné la solution, et l'autre pour
ouvrir Word et afficher le fichier toto.doc.
Ton code fonctionne très bien dans le deuxième cas, sauf que Word "clignote"
plusieurs fois, à chaque fois qu'on change une marge. Est-il donc possible
de n'afficher Word qu'une fois que les modif's apportées soient faites ?
Merci !

Via :)


"François Picalausa" a écrit dans le message de news:

Hello,

tu peux essayer ceci:
Dim WordApp As Object
Dim WordDoc As Object

Set WordApp = CreateObject("Word.Application")
WordApp.Visible = False
Set WordDoc = WordApp.Documents.Open("c:...toto.doc")

With WordDoc.PageSetup
.TopMargin = WordApp.CentimetersToPoints(2)
.BottomMargin = WordApp.CentimetersToPoints(2)
.LeftMargin = WordApp.CentimetersToPoints(2)
.RightMargin = WordApp.CentimetersToPoints(2)
End With

WordDoc.printout
WordDoc.Close
WordApp.quit

--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net

"Via" a écrit dans le message de
news:ePKy7$
> Bonjour à tous.
>
> Après une matinée de tentatives infructueuses à base de plantages
> de VB voire du système...
> J'aimerais faire la chose suivante avec Automation (ou toute autre
> méthode d'ailleurs, je veux que ça marche, c'est tout) :
>
> - Ouvrir un fichier Word (par exemple C:Test.doc)
> - Paramètrer les marges d'impression à l'aide du code suivant :
> With ActiveDocument.PageSetup
> .TopMargin = CentimetersToPoints(2)
> .BottomMargin = CentimetersToPoints(2)
> .LeftMargin = CentimetersToPoints(2)
> .RightMargin = CentimetersToPoints(2)
> End With
> - Imprimer
> - Fermer le fichier
>
> et ceci en arrière-plan, afin que l'utilisateur utilisant mon
> application VB6 ne voit pas Word s'ouvrir et se fermer.
> Toute documentation / information sur Automation dans VB6 pour Word
> est bienvenue...
> Merci d'avance,
>
> Via :)