[VBA] macro word : insertion de texte

macro word : insertion de texte [VBA] - VB/VBA/VBS - Programmation

Marsh Posté le 05-02-2008 à 15:04:40    

Bonjour,
   
Voilà j'ai beaucoup de documents Word avec en première page un tableau, en seconde page la table des matières, et le document en lui-même commence en page 3 par un titre.  
 
Ce que je voudrais faire, c'est une macro permettant de remplacer le contenu de la page 1 et 2 par un texte comportant 2 lignes, séparé du 1er titre par un saut de ligne.
 
Merci d'avance pour vos réponses.

Reply

Marsh Posté le 05-02-2008 à 15:04:40   

Reply

Marsh Posté le 05-02-2008 à 15:33:21    

Tu as essayé en faisant l'opération à la main et en enregistrant toutes tes actions via l'Enregistreur de Macros ?  
 
Ça te donnerait déjà une bonne base sur laquelle travailler, comme dit dans d'autres topics il vaut mieux venir ici avec un début de solution, présenter les problèmes que tu rencontres et montrer que tu y as mis du tien, plutôt que de demander qu'on fasse le boulot à ta place ...

Reply

Marsh Posté le 05-02-2008 à 16:13:50    

Je ne l'ai pas fait avec l'enregistrement, mais j'ai écrit ça :  
 

Code :
  1. Sub Signets()
  2. '
  3. ' signets Macro
  4. ' Développée par frhumbee le 05/02/08
  5. '
  6.     With ActiveDocument.Bookmarks
  7.         .Add Range:=Selection.Range, Name:="Debut"
  8.         .DefaultSorting = wdSortByName
  9.         .ShowHidden = False
  10.     End With
  11.     ActiveWindow.ActivePane.SmallScroll Down:=130
  12.     Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:="3"
  13.     Selection.Find.ClearFormatting
  14.    
  15.     With ActiveDocument.Bookmarks
  16.         .Add Range:=Selection.Range, Name:="Fin"
  17.         .DefaultSorting = wdSortByName
  18.         .ShowHidden = False
  19.     End With
  20.     ActiveWindow.ActivePane.SmallScroll Down:=-56
  21.    
  22.     ActiveDocument.Range(ActiveDocument.Bookmarks("Debut" ).Range.Start, ActiveDocument.Bookmarks("Fin" ).Range.End).Select
  23.    
  24.     Selection.TypeText Text:="---+!! TITRE DU DOCUMENT 'saut de ligne' INDEX 'saut de ligne' "
  25.      
  26. End Sub


 
J'insère un signet au début du document et un signet avant le 1er titre de la page 3. Puis je sélectionne le contenu entre ces 2 signets, et je remplace la sélection par mon texte.  
C'est là que j'ai un problème, car le texte de remplacement doit avoir cette allure dans word après exécution :  
---------
TITRE DU DOCUMENT
 
INDEX

 
1er titre
---------
 
et je ne sais pas comment insérer des saut de ligne dans la ligne de code.  
J'ai essayé quelques codes que j'ai lu sur les forums mais cela insère le code dans la ligne dans word mais ne l'interprète pas...
 
Merci pour l'aide

Reply

Marsh Posté le 05-02-2008 à 16:27:06    

Le saut de ligne c'est  " & vbCr " à la fin de ta ligne, iirc
 
Quant à tes sélections je pense que tu fais quand même de la sélection manuelle (en entrant des valeurs précises comme le 130 ou le 56) et qu'à la moindre variation dans un document ça ne va pas marcher ...  
 
Va donc voir ce genre d'article qui explique comment sélectionner une page entière via une macro , je pense que tu vas déjà avoir de bonnes pistes :)

Reply

Marsh Posté le 06-02-2008 à 16:50:50    

Merci ! Nikel !  :)  
 
Pour les valeurs précises c'était dû à l'enregistrement macro mais je les ai supprimé et ca marche très bien sans...sur tous les documents !
 
Et merci pour le lien j'ai trouvé d'autres trucs intéressant pour mon projet !

Reply

Marsh Posté le 06-02-2008 à 16:56:36    

Hehe de rien
 
Mais comme toujours, Google est ton ami, j'ai trouvé ce site en deux coups de click à pot :)

Reply

Sujets relatifs:

Leave a Replay

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