Voici un exemple pour obtenir ce que vous souhaitez trois documents, fusionnés en un seul nouveau:
Dim a As String, b As String, c As String, d As Document
Dim r As Range
a = "path to first doc"
b = "path to second doc"
c = "path to third doc"
Set d = Documents.Add
Set r = d.Content
r.InsertFile a, Link:=False
Set r = d.Range(d.Content.End - 1, d.Content.End - 1)
r.InsertFile b, Link:=False
Set r = d.Range(d.Content.End - 1, d.Content.End - 1)
r.InsertFile c, Link:=False
Si vous souhaitez le faire pour un nombre variable de fichiers, vous devez faire une boucle sur eux. Voici un exemple, s'il vous plaît définir une référence à Microsoft Scripting Runtime:
Dim d As Document
Dim r As Range
Dim fso As FileSystemObject, fol As Folder, f As File
Dim fc
Set fso = New FileSystemObject
Set fol = fso.GetFolder("path to your files")
Set d = Documents.Add
For Each f In fol.Files
Set r = d.Range(d.Content.End - 1, d.Content.End - 1)
r.InsertFile f.Path, Link:=False
Next f
Modifier Si vous souhaitez fusionner tous les documents actuellement ouverts en un sans itérer sur les fichiers, utilisez:
Dim d As Document
Dim r As Range
Dim allDocs As Variant
ReDim allDocs(Documents.Count)
For i = 1 To Documents.Count
allDocs(i - 1) = Documents(i).Name
Next i
Set d = Documents.Add
For i = 0 To UBound(allDocs) - 1
Documents(allDocs(i)).Range.Copy
Set r = d.Range(d.Content.End - 1, d.Content.End - 1)
r.Paste
Next i
Vous feriez mieux d'inclure votre code si vous voulez avoir des réponses, s'il vous plaît modifier votre message pour l'ajouter. – R3uK
J'ai ajouté mon code source ici. –
Essayez-vous vraiment de "fusionner" les documents ou souhaitez-vous simplement concaténer tous les documents en un, c'est-à-dire créer un document sur trois? Parce qu'avec "fusionner" vous fusionnez des révisions. – LocEngineer