Lancer Word et fusionner...

SOLDEVILA Messages postés 3 Date d'inscription mardi 10 septembre 2002 Statut Membre Dernière intervention 29 septembre 2002 - 25 sept. 2002 à 21:59
sssccc Messages postés 7 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 16 avril 2007 - 21 juil. 2005 à 13:48
Bonjour à tous.

Mon application lance Word en ouvrant un document de publipostage avec le code suivant:

Dim MonDoc As Object
Dim MonFichier As String

...

Set MonDoc = CreateObject("Word.application")
MonDoc.documents.Open FileName:=MonFichier
MonDoc.application.Visible = True

J'aimerais executer, "dans la foulee", la fusion dans un nouveau document.

Si quelqu'un a deja fait ca, merci d'avance...

6 réponses

nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013
26 sept. 2002 à 14:04
Salut, j'ai fait ça en son temps mais je ne me souviens plus de tête les commandes, par contre je peux te donner un petit truc que j'ai utilisé.
Tu ouvres ton document normalement, ensuite tu lance l'enregistreur de macro de word et tu fais les opérations que tu souhaites que ta procédure exécute, une fois fini tu arrete l'enregistreur de macro et tu accede au code que word viens de générer. Et hooooooooo miracle tu as le code nécessaire il ne te reste plus qu'a le paufiner et à l'ajouter dans ton application.
Voilà c'est tout con et ca marche bien.
0
SOLDEVILA Messages postés 3 Date d'inscription mardi 10 septembre 2002 Statut Membre Dernière intervention 29 septembre 2002
26 sept. 2002 à 16:56
J'ai pense a ca mais le probleme est que le source VB de la macro fait reference a la classe d'objet WORD.GLOBAL (item: activedocument), alors que j'ai a disposition dans mon script VB un objet de classe WORD.APPLICATION. De fait, je ne peux pas acceder aux methode de type mailmerge, etc...
0
nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013
26 sept. 2002 à 22:28
Re
il faut que tu cherches un peu ;o)
tu vois que dans word il fait référence à word global avec l'item activedocument, normal, mais tu peux également créer un item dans ton objet application, regarde de quoi il est composé, d'une collection document qui conteint ton document. suffi d'y faire réference en créant une référence à ce document et tu pourra utilisé toutes les méthodes propriétés et evenement de ton document.

Bon un petit exemple vaut mieux que des longs discourt :o)

Dim AppWord As Word.Application
Dim DocWord As Word.Document
Set AppWord = CreateObject("Word.Application")
'je cache l'application
AppWord.Visible = False
'ouverture d'un document
AppWord.Documents.Open "c:\mondocument.doc"
'j'affiche word avec le document ouvert
AppWord.Visible = True
'je le minimise :o)
AppWord.WindowState = wdWindowStateMinimize
'je crée une référence à mon document celui que j'ai ouvert :o)
Set DocWord = AppWord.Documents.Item("mondocument")
'si mon document contient un mailmerge
If DocWord.MailMerge.State = wdMainAndDataSource Then
With DocWord.MailMerge
.Destination = wdSendToNewDocument
.MailAsAttachment = False
.MailAddressFieldName = ""
.MailSubject = ""
.SuppressBlankLines = True
With .DataSource
.FirstRecord = 1
.LastRecord = 1
End With
'Execute le mailmerge
.Execute Pause:=True
sauvegarde de mon nouveau document
ActiveDocument.SaveAs FileName:="c:\monnouveaudocument.doc", FileFormat:= _
wdFormatDocument, LockComments:=False, Password:="", AddToRecentFiles:= _
True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:= _
False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False
ActiveDocument.Close
End With
'sinon je sauvegarde mon document sous un autre nom
Else
DocWord.SaveAs FileName:="C:\autrenom.doc", FileFormat:= _
wdFormatDocument, LockComments:=False, Password:="", AddToRecentFiles:= _
True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:= _
False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False

End If
DocWord.Close
AppWord.Quit
Set AppWord = Nothing
0
SOLDEVILA Messages postés 3 Date d'inscription mardi 10 septembre 2002 Statut Membre Dernière intervention 29 septembre 2002
29 sept. 2002 à 05:25
T'es un chef. ca marche pile poil. Merci ( et en plus j'ai compris le principe)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013
29 sept. 2002 à 11:00
Encore heureux :o) je l'ai pris d'une dll de gestion de fichiers que j'ai développé, ben voilà suis content que tu ai compris, au moins cela n'aura pas servi à rien :o))
@++++
0
sssccc Messages postés 7 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 16 avril 2007
21 juil. 2005 à 13:48

0
Rejoignez-nous