Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/12/2010, 23h13   #1
Invité de passage
 
Christophe
Inscription : décembre 2010
Messages : 13
Détails du profil
Informations personnelles :
Nom : Christophe

Informations forums :
Inscription : décembre 2010
Messages : 13
Points : 1
Points : 1
Par défaut Macro BreakOnSection perte de mise en forme

Bonjour a tous,

J'ai utilisé la macro BreakOnSection afin de couper un publipostage.
Ça fonctionne, j'ai bien un fichier Word de créé par section. En revanche j'ai perdu styles, polices et mise en page. Voici ce que j'exécute:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Sub BreakOnSection()
   ' Used to set criteria for moving through the document by section.
   Application.Browser.Target = wdBrowseSection
 
   'A mail merge document ends with a section break next page.
   'Subtracting one from the section count stop error message.
   For i = 1 To ((ActiveDocument.Sections.Count) - 1)
 
'Note: If a document does not end with a section break, 
'substitute the following line of code for the one above:
'For I = 1 To ActiveDocument.Sections.Count
 
      'Select and copy the section text to the clipboard.
      ActiveDocument.Bookmarks("\Section").Range.Copy
 
      'Create a new document to paste text from clipboard.
      Documents.Add
      Selection.Paste
 
   ' Removes the break that is copied at the end of the section, if any.
      Selection.MoveUp Unit:=wdLine, Count:=1, Extend:=wdExtend
      Selection.Delete Unit:=wdCharacter, Count:=1
ChangeFileOpenDirectory "C:\"
      DocNum = DocNum + 1
     ActiveDocument.SaveAs FileName:="test_" & DocNum & ".doc"
     ActiveDocument.Close
      ' Move the selection to the next section in the document.
     Application.Browser.Next
   Next i
   ActiveDocument.Close savechanges:=wdDoNotSaveChanges
End Sub

Je n'ai aucune notion de Vba, comment garder styles, polices et mise en page sur les nouveaux fichier words créés?

En espérant un peu d'aide.
Merci de m'avoir lu
lefenek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2010, 23h32   #2
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 983
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 25
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 983
Points : 1 590
Points : 1 590
Envoyer un message via MSN à carden752
bonjour,

vous poucez utiliser plutot
Code :
selection.pasteandformat (wdFormatOriginalFormatting)
au lieu de selection.paste
Cela conserve la mise en forme d'origine.
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2010, 23h45   #3
Invité de passage
 
Christophe
Inscription : décembre 2010
Messages : 13
Détails du profil
Informations personnelles :
Nom : Christophe

Informations forums :
Inscription : décembre 2010
Messages : 13
Points : 1
Points : 1
Merci beaucoup Monsieur
lefenek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2011, 14h31   #4
Invité de passage
 
Christophe
Inscription : décembre 2010
Messages : 13
Détails du profil
Informations personnelles :
Nom : Christophe

Informations forums :
Inscription : décembre 2010
Messages : 13
Points : 1
Points : 1
Par défaut Breaksection toujour,

Merci encore a carden752 pour la réponse. La macro fonctionne correctement j'ai bien la mise en page qui est gardée et tout et tout.

En revanche, pour chaque fichier créé par section il me rajoute une page blanche à la fin. Je ne trouve pas ça gênant mais tout le monde n'est pas de mon avis.

Voila ce que je lance:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub Fédé()
   ' Used to set criteria for moving through the document by section.
   Application.Browser.Target = wdBrowseSection
 
   'A mailmerge document ends with a section break next page.
   'Subtracting one from the section count stop error message.
   For i = 1 To ((ActiveDocument.Sections.Count) - 1)
 
      'Select and copy the section text to the clipboard
      ActiveDocument.Bookmarks("\Section").Range.Copy
 
      'Create a new document to paste text from clipboard.
      Documents.Add
      Selection.PasteAndFormat (wdFormatOriginalFormatting)
 
     ChangeFileOpenDirectory "C:\"
      DocNum = DocNum + 1
     ActiveDocument.SaveAs FileName:="Doc_" & DocNum & ".doc"
     ActiveDocument.Close
      ' Move the selection to the next section in the document
     Application.Browser.Next
   Next i
   ActiveDocument.Close savechanges:=wdDoNotSaveChanges
End Sub
Une idée pour supprimer cette page blanche en fin de chaque fichier?

Merci
lefenek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 02h29   #5
Rédacteur/Modérateur
 
Avatar de Sepia
 
Homme JF Jousseaume
Inscription : octobre 2007
Messages : 2 390
Détails du profil
Informations personnelles :
Nom : Homme JF Jousseaume
Âge : 48
Localisation : France

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 2 390
Points : 3 377
Points : 3 377
Salut Lefenek,

Dans la 1ere macro, tu supprimais le dernier caractère ajouté (lignes après le Selection.Paste). Carden752 te proposait juste de remplacer le Selection.Paste mais je pense que tu devrais garder le reste (c'est-à-dire le code qui supprime ).

@+
Sepia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 11h41   #6
Invité de passage
 
Christophe
Inscription : décembre 2010
Messages : 13
Détails du profil
Informations personnelles :
Nom : Christophe

Informations forums :
Inscription : décembre 2010
Messages : 13
Points : 1
Points : 1
Merci pour ta réponse Sepia

Quand je rajoute :

Code :
1
2
Selection.MoveUp Unit:=wdLine, Count:=1, Extend:=wdExtend
      Selection.Delete Unit:=wdCharacter, Count:=1
J'ai plus de page blanche supplementaire mais plus de mise en page également.

j'ai créé une nouvelle discusion vu que celle ci était en résolu.
lefenek est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h55.


 
 
 
 
Partenaires

Hébergement Web