Fusionner 2 fichier Word avec un vba Excel

CHTING

XLDnaute Junior
Bonjour à toutes et à tous.

J'ai un programme vba qui transforme mes données en Excel dans du word. 2 fichiers word (Classeur 1 et classeur2).
Je souhaiterai après cette étape de les fusionner en un seul (toujours avec excel et sans les enregistrer).

Merci pour votre aide.

Cordialement.
 

Staple1600

XLDnaute Barbatruc
Re : Fusionner 2 fichier Word avec un vba Excel

Bonjour à toutes et à tous

CHTING
Bonjour à toutes et à tous.
J'ai un programme vba qui transforme mes données en Excel dans du word.
Dans ce cas, pourquoi ton code VBA n'est pas dans le message ?
Ou mieux pourquoi n'avoir pas joint de fichier exemple contenant ton programme VBA ?

NB: Tu n'es pas pourtant pas novice sur le forum, non ? :rolleyes:

EDITION: Si il s'agit de ce fil
1) c'est au demandeur de mettre le lien en toute logique, non ?
2) Un simple up dans le fil que je viens de cité, eut été plus simple et bénéfique (pour avoir des réponses qui se basent sur de l'existant), non ?
 
Dernière édition:

CHTING

XLDnaute Junior
Re : Fusionner 2 fichier Word avec un vba Excel

Bonjour Stapel1600,

Oui je ne suis pas novice sur le forum :).
J'ai juste pensé que le programe n'aurait pas d'influence sur mon probléme.

Sinon, voici mon code :(pour info, j'utilise deux codes un pour faire un word "portarait", l'autre en "paysage" (c'ets des tableaux) et je cherche à les fusionner

Sub Excel_Word_CR()

Dim oWdApp As Word.Application 'et non Object
Dim oWdDoc As Word.Document 'et non Object

'Lancer une instance Word
Set oWdApp = CreateObject("Word.Application")

'Ouvrir un nouveau document
Set oWdDoc = oWdApp.Documents.Add

'Rendre Word visible
oWdApp.Visible = True

'Copier une plage depuis Excel
ActiveSheet.Range("B1:X1000").Copy

'Coller la plage dans Word
oWdApp.Selection.Paste
oWdApp.ActiveWindow.ActivePane.VerticalPercentScrolled = 0
oWdApp.Selection.Tables(1).AutoFitBehavior (wdAutoFitWindow)

Application.CutCopyMode = False

oWdApp.Selection.WholeStory
With oWdApp.Selection.ParagraphFormat
.SpaceBefore = 0
.SpaceBeforeAuto = False
.SpaceAfter = 0
.SpaceAfterAuto = False
.LineSpacingRule = wdLineSpaceSingle
.LineUnitBefore = 0
.LineUnitAfter = 0
End With
End Sub



Sub Extraction_annexe_word()
Dim oWdApp As Word.Application
Dim oWdDoc As Word.Document
'Lancer une instance Word
Set oWdApp = CreateObject("Word.Application")

'Ouvrir un nouveau document
Set oWdDoc = oWdApp.Documents.Add
'Rendre Word visible
oWdApp.Visible = True
'mise en page panoramique
If oWdApp.Selection.PageSetup.Orientation = wdOrientPortrait Then
oWdApp.Selection.PageSetup.Orientation = wdOrientLandscape
Else
oWdApp.Selection.PageSetup.Orientation = wdOrientPortrait
End If
'Copier une plage depuis Excel
ActiveSheet.Range("B1:x4000").Copy
'Coller la plage dans Word
oWdApp.Selection.Paste
oWdApp.ActiveWindow.ActivePane.VerticalPercentScrolled = 0
oWdApp.Selection.Tables(1).AutoFitBehavior AutoFitWindow
Application.CutCopyMode = False

End Sub


Merci pour ton aide.

Cordialement
 

Staple1600

XLDnaute Barbatruc
Re : Fusionner 2 fichier Word avec un vba Excel

Bonjour à tous


Test OK avec Excel 2013 et Word 2013
(macro à mettre dans un classeur)
Code:
Sub CombinerDeuxDocsEnUn()
Dim wrdApp As Object
Dim wrdDoc1 As Object
Dim wrdDoc2 As Object
Set wrdApp = CreateObject("Word.Application")
wrdApp.Visible = True
Set wrdDoc1 = wrdApp.Documents.Open("C:\temp\doc1.doc")
Set wrdDoc2 = wrdApp.Documents.Open("C:\temp\doc2.doc")
wrdDoc1.Content.InsertAfter wrdDoc2.Content
wrdDoc1.SaveAs "c:\temp\doc3.doc"
wrdApp.Quit
End Sub
 

CHTING

XLDnaute Junior
Re : Fusionner 2 fichier Word avec un vba Excel

merci JM,

mais j'ai un soucis avec l'adresse C:\temp\doc1.doc (fichier introuvable)
J'ai vérifié le nom du fichier et c'est bien doc1.
C'est là mon gros problème, je ne sais pas aller chercher un fichier qui vient d'être crée et qui n'est pas enregistrer (C:\temp\..?).
Le plus facile serait d'enregistrer quelque part mais c'est un programme que je partage.

Merci pour ton aide.

Cordialement
 

CHTING

XLDnaute Junior
Re : Fusionner 2 fichier Word avec un vba Excel

merci JM,

mais j'ai un soucis avec l'adresse C:\temp\doc1.doc (fichier introuvable)
J'ai vérifié le nom du fichier et c'est bien doc1.
C'est là mon gros problème, je ne sais pas aller chercher un fichier qui vient d'être crée et qui n'est pas enregistrer (C:\temp\..?).
Le plus facile serait d'enregistrer quelque part mais c'est un programme que je partage.

Merci pour ton aide.

Cordialement
 

Staple1600

XLDnaute Barbatruc
Re : Fusionner 2 fichier Word avec un vba Excel

Bonjour à tous

CHTING
Il faut évidemment adapter mon code à ta situation réelle.
C'est à dire changer le nom du répertoire et les noms des fichiers.
Donc modifier c:\temp, doc1.doc et doc2.doc

Je viens de voir que tu parles ne pas enregistrer et que tu copies dans deux fichier Word distincts.
Pourquoi ne pas copier directement des données Excel dans un seul fichier Word ?
EDITION: Avec ce code , on copie deux plages dans un document Word créé par la macro.
NB: Tu adapteras les plages en conséquence
(Car chez moi avec B1:X1000 et B1:X4000, Word a du mal à gérer)
VB:
Sub CopierDeuxPlagesDanWord()
'Dans VBE,Activer la référence à : Microsoft Word XX.0 Library
'-> Outils/Références
Dim wrdApp As Word.Application, oDoc As Word.Document
Dim xlRng1 As Range, xlRng2 As Range

Set xlRng1 = Worksheets(1).Range("B1:E10") 'remplacer E10 par X1000
Set xlRng2 = xlRng1.Resize(40) 'remplacer 40 par 4000

Set wrdApp = CreateObject("Word.Application")
Set oDoc = wrdApp.Documents.Add
wrdApp.Visible = True

xlRng1.Copy
oDoc.ActiveWindow.Selection.Paste
oDoc.ActiveWindow.Selection.Tables(1).AutoFitBehavior (wdAutoFitWindow)

xlRng2.Copy
oDoc.ActiveWindow.Selection.InsertBreak Type:=wdPageBreak
oDoc.ActiveWindow.Selection.Paste
End Sub
 
Dernière édition:

CHTING

XLDnaute Junior
Re : Fusionner 2 fichier Word avec un vba Excel

Bonjour,

Je vais essayer de t'éclairer sur mon problème (c pas facile à expliquer :))

Je n'ai pas mis 2 pages excel dans un seul word parce qu'elles n'ont pas la même mise en page (format portrait pour l'un et paysage pour l'autre). De plus, l'une des pages est du texte et l'autre des tableaux.
Le problème est que le transfert d'Excel à word se fait sous format tableau, et mon fichier word qui contient du texte a pour objectif d'être modifié facilement (et le format tableau n'est pas pratique).

J"avais dc 2 solutions :
- soit, je fusionne mes pages directement sur excel et je mets en format texte uniquement ma deuxième partie (j'ai une ligne de code qui change le format de tableau en texte sur word mais je n'arrive pas à faire le changement uniquement de la page 6 à indéfini
code : Selection.Rows.ConvertToText Separator:=wdSeparateByDefaultListSeparator, _
NestedTables:=True

-soit je change le format en texte directement sur un de mes fichiers word et je les fusionne après sachant que ces fichiers word ne peuvent pas être enregistrer.

Voilà, j'ai essayé la deuxième solution mais si vous avez une idée pour enlever le format tableau sur une partie d'un fichier word je suis preneur :)

merci pour votre aide.

Bien cordialement
 

Discussions similaires