Bienvenue 

sur les faqs Word & PowerPoint

Une question ? Cliquez ici.

 Un exemple à télécharger ? Cliquez ici.

 

Word 365 : Vous saurez tout !

Auteur sur XinXii

Pour tout connaître sur Word

8,90 €

 

Voici une macro qui va sauvegarder chaque section d'un document en un fichier indépendant. Cette macro est utile en particulier pour des fichiers issus du publipostage.

Votre document principal de publipostage est normalement basé sur un modèle avec en-tête, pied de page, etc. Si ce n'est pas le cas et que vous ayez ajouté manuellement ce type d'éléments, la macro va fonctionner mais vous obtiendrez un document avec une mise en forme et une msie en page qui ne va pas refléter votre document fusionné.

Dans ce dernier cas, créez un modèle à partir de votre document principal de publipage : vous pouvez simplement l'enregistrer sous un format DOTX, puis vous supprimerez le contenu, mais vous garderez tout ce qui est en-tête, pied de page, etc. Surtout pensez à le convertir en "document normal" pour qu'il ne soit pas lié à une base de données pour le publipostage. Ainsi vos documents créés depuis votre document fusionné seront basés sur ce modèle.

Les documents seront automatiquement enregistrées sous un numéro (DocNum). Si vous souhaitez que les noms des documents reprennent des mots contenu dans le résultat, voyez cet article.

 

Sub Couper_sections()
'macro écrite par m@rina
Application.ScreenUpdating = False
Dim SousDoc As Document
Dim chemin As String
Dim R As Range
Dim x, DocNum

For x = 1 To ActiveDocument.Sections.Count - 1
Set R = ActiveDocument.Sections(x).Range:   R.End = R.End - 1
R.Copy
'Mettez le chemin complet et le nom du modèle
Documents.Add Template:="C:\Users\mon_nom\Documents\Modèles Office personnalisés\publitest.dotx"
Selection.Paste
DocNum = DocNum + 1
'Mettez ici le nom complet du dossier où vous souhaitez récupérer les documents
chemin = "C:\Mes documents\test\"
With ActiveDocument
.SaveAs FileName:=chemin & DocNum & ".docx"
.Close
End With
Next x

Set SousDoc = Nothing
Set R = Nothing
Application.ScreenUpdating = True

End Sub

 

Statistiques

Aujourd'hui2512
Hier2580
Cette semaine5092
Ce mois40174
Total depuis 200410957545

18
visiteurs actuellement en ligne