Découper un fichier word en plusieurs fichiers via une macro

Découper un fichier word en plusieurs fichiers via une macro - VB/VBA/VBS - Programmation

Marsh Posté le 27-01-2009 à 09:49:04    

Bonjour,
 
Je vous explique mon problème: On m'a confié plusieurs .doc assez de tailles importantes (plus de 50 pages) afin que je les restitue en autant de fichiers .doc qu'il existe de pages dans ces fichiers. En gros avec un fichier .doc de 50 pages, je dois me retrouver avec 50 .doc.
N'y connaissant rien en programmation Vba j'ai donc demandé  à mon ami Mr Google de l'aide et je me suis gentiment retrouvé chez vous ou j'ai trouvé ce sujet déja traité dans ce message: http://forum.hardware.fr/hfr/Progr [...] 4620_1.htm
 
J'ai donc récupéré cette macro:  
 
Option Explicit  
   
Sub DecoupagePageParPage()  
Dim NomDocDepart As String  
Dim i As Long  
Dim Dossier As String, DossierSauvegarde As String  
Dim NumDoc As Long, NbPages As Long  
 
    NomDocDepart = ActiveDocument.Name  
    Dossier = ActiveDocument.Path  
    DossierSauvegarde = Dossier & Application.PathSeparator & "Charcuterie"  
    VerifDossier (DossierSauvegarde)  
     
    Application.ScreenUpdating = False  
    Application.Browser.Target = wdBrowsePage  
    NbPages = ActiveDocument.BuiltInDocumentProperties(wdPropertyPages)  
     
    ChangeFileOpenDirectory DossierSauvegarde  
 
    For i = 1 To NbPages  
       
      ActiveDocument.Bookmarks("\page" ).Range.Copy  
      Documents.Add  
      Selection.Paste  
       
      NumDoc = NumDoc + 1  
       
      ActiveDocument.SaveAs FileName:=Left(NomDocDepart, Len(NomDocDepart) - 4) + _  
            "_" + CStr(NumDoc) + ".doc", FileFormat:=wdFormatDocument  
      ActiveDocument.Close  
 
      Application.Browser.Next  
    Next i  
     
    Application.ScreenUpdating = True  
    'ActiveDocument.Close savechanges:=wdDoNotSaveChanges  
End Sub  
 
Sub VerifDossier(ByVal DossierSauvegarde As String)  
On Error GoTo erreur  
    ChDir DossierSauvegarde  
    Exit Sub  
erreur:  
    If Err.Number = 76 Then  
        MkDir (DossierSauvegarde)  
        Resume Next  
    End If  
End Sub

 
Le découpage marche très bien dans le sens ou je me retrouve bien avec 50 fichiers, mais mon problème est dans la mise en page de ses fichiers.
Chaque page de chaque fichier crée s'étale désormais sur 3 pages (avec une police différente et des sauts de ligne en plus), là ou dans le fichier de départ ils tenaient tous sur une page.
 
Ma question est donc : Y'a t-il un moyen de modifier cette macro pour qu'elle me restitue mes fichiers en gardant exactement la même mise en forme?
 
Cordialement,
 
Le newbie de la Prog  
 
Merci ;-)

Reply

Marsh Posté le 27-01-2009 à 09:49:04   

Reply

Marsh Posté le 27-01-2009 à 10:00:17    

Je suppose que ton "document.add" se base sur ton normal.dot... et du coup, il prend les paramètres par défaut de ce doc, et non pas les paramétrages du document sur lequel tu es...
Je pense qu'il faudrait que tu arrives en fait à créer un nouveau document en se basant sur les formats sur ton document actuel (ou copie de ton document + suppression de tout ce qu'il contient par exemple - attention à avoir des copies de sauvegarde hein quand même... et de pas copier les macros avec non plus)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed