probléme accés word via excel

jpcwe

XLDnaute Nouveau
Bonsoir,

Voilà mon soucis:
J'ai, aprés des heures passées sur le forum et aprés avoir copié, collé et transformé des exemples, obtenu un formulaire de saisie remarquable (merci à Thierry, Zon, Hervé, Michel... et j'en oublie)
Je pensais aprés être devenu chauve avoir fait le plus difficile et pouvoir sortir des données afin d'alimenter un document Word via le publipostage.
Mon problème est le suivant: aprés avoir saisi la formule que l'on peut trouver sur le lien WIKI de Michel( sur les liaisons avec Words), et que je clic sur le bouton sensé ouvrir mon documentWord je bloque pour deux raisons:
1/ le document ouvre de nouveau le fichier excel déjà ouvert et il rame;
2/ les formulaires avec les macros bloque le document Word;

Quelle est la procédure pour éviter d'ouvrir une deuxième fois Excel,
Comment passer au delà des macros?
Peut-on revenir sous Excel aprés avoir traité l'info?

Merci de l'aide apportée
 
J

jpcwe

Guest
bonjour Michel,

Voilà en piéce jointe le fichier qui a subi un régime (sans les codes que j'ai emprunté et que je dois à Thierry Zon toi etc...)

Tu as un menu principal qui te permet :
1/soit de saisir
2/ soit d'aller dans un fichier de recherche ( là j'utilise multi mini bd 4.51 de Thierry)
3/ soit d'ouvrir Word et à partir du fichier DOC faire du publipostage afin d'imprimer une fiche avec les informations saisies.
4/ soit de rejoindre le fichier excel (retour au menu en utiisant le retour menu dans la barre de ommande.
5/ soit sortir en enregistrant

Mon probléme se situe en 3/. Je n'arrive pas à ouvrir word ( malgré l'appel aux références word) car lorsque word s'ouvre il va rechercher des données dans mon fichier excel qu'il essaye d'ouvrir (grosse boucle infernale). De plus j'ai l'impression que mon menu fait blocage.

Dois-je faire une macro Word qui ferme excel le temps de l'impression?(là ça va ramer)
Dois-je fermer excel pour l'ouvrir de nouveau ( perte de temps)
Peut-on dire à word que le document qu'il recherche est déjà ouvert?
Ou doit-on ouvrir en premier Word, qui ouvrira de facto excel,travailler avec excel, et avec le bouton impression faire appel à Word quand on veut l'impression?

Merci de ton aide

P.S.: je travaille sur Excel2000, bientôt sur 2003 [file name=pbwordexcel.zip size=48571]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/pbwordexcel.zip[/file]
 

Pièces jointes

  • pbwordexcel.zip
    47.4 KB · Affichages: 15

MichelXld

XLDnaute Barbatruc
rebonjour

La macro ci dessous permet de lancer l'impression du document de publipostage depuis Excel. Pour les essais , j'ai placé cette procedure dans le classeur contenant la base de données et je n'ai pas rencontré de problème particulier .
J'ai utilisé une connection OLE DB ( par défaut) pour la fusion entre le document Word et la base de données Excel .


Private Sub CommandButton3_Click()
Dim DocWord As Word.Document
Dim AppWord As Word.Application

Application.ScreenUpdating = False
Set AppWord = New Word.Application
AppWord.Visible = False
Set DocWord = AppWord.Documents.Open(ThisWorkbook.Path & '\\\\\\\\dossier.doc')

With DocWord.MailMerge
.Destination = wdSendToPrinter
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
End With

Application.ScreenUpdating = True
DocWord.Close False
AppWord.Quit
End Sub



bon apres midi
MichelXld

Message édité par: michelxld, à: 04/03/2006 14:44
 
J

jpcwe

Guest
re michel,

Malgré le fait que j'ai récupéré dans références l'objet word appli. il me met le message d'erreurs suivants: erreur d'exécution l'objet demandé n'est pas disponible. Quid?

dis moi si je veux visionner le document avant impression je fais quoi?

encore merci
 

MichelXld

XLDnaute Barbatruc
rebonsoir

J'ai utilisé Excel 2002 pour créer la macro .

tu ne précises pas à quelle ligne tu as un message d'erreur


sinon pour simplement visualiser le document , tu peux utiliser :

Dim DocWord As Word.Document
Dim AppWord As Word.Application

Application.ScreenUpdating = False
Set AppWord = New Word.Application
AppWord.Visible = True
Set DocWord = AppWord.Documents.Open(ThisWorkbook.Path & '\\\\\\\\dossier.doc')




bonne soirée
MichelXld
 
J

jpcwe

Guest
Merci c'est ce que je voulais obtenir.

Avec le copier coller qu'est ce qu'on devient bon ;)

dis moi si je veux copier mon dossier sur un autre ordinateur il va falloir que je me déplace pour ouvrir la bibliothéque Word. Ne peut-on pas faire appel à cette librairie dés l'initialisation du dossier quelle que soit la version de word, et permettre de transmettre ce dossier tel quel sans opération directe sur le code?

merci d'avance
 

MichelXld

XLDnaute Barbatruc
bonjour Jpcwe

Tu peux tester cette adaptation qui devrait fonctionner pour toutes les configurations

Sub ouvrirWord()
Dim DocWord As Object, AppWord As Object

Set AppWord = CreateObject('word.application')
AppWord.Visible = True
Set DocWord = AppWord.Documents.Open(ThisWorkbook.Path & '\\dossier.doc')
End Sub



bon apres midi
MichelXld
 

jpcwe

XLDnaute Nouveau
Euh re bonjour,

cé moi. Voilà j'ai pris mon dossier que j'ai emmené au boulot.

Lorsque je veux visualiser il m'ouvre de nouveau le fichier excel ( là ça rame dur) et lorsque je ferme j'ai le message suivant:impossible de rétablir une liaison DDE avec micro? Excel pour achever la tâche en cours sur la ligne:
Set DocWord = AppWord.Documents.Open(ThisWorkbook.Path & 'dossier.doc')
Ca m'énerve car j'ai l'impression d'avoir fait le plus dur et là paf ça bloque...

merci
 

jpcwe

XLDnaute Nouveau
Euh re bonjour,

cé moi. Voilà j'ai pris mon dossier que j'ai emmené au boulot.

Lorsque je veux visualiser il m'ouvre de nouveau le fichier excel ( là ça rame dur) et lorsque je ferme j'ai le message suivant:impossible de rétablir une liaison DDE avec micro? Excel pour achever la tâche en cours sur la ligne:
Set DocWord = AppWord.Documents.Open(ThisWorkbook.Path & 'dossier.doc')
Ca m'énerve car j'ai l'impression d'avoir fait le plus dur et là paf ça bloque...

merci
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 337
Messages
2 087 391
Membres
103 536
dernier inscrit
komivi