Mise en page d'un signet sous Word par macro

Mise en page d'un signet sous Word par macro - VB/VBA/VBS - Programmation

Marsh Posté le 27-11-2012 à 17:23:10    

Bonjour à tous,
 
J’ai un peu de mal à programmer en VBA et je sollicite votre aide pour dépatouiller mon problème !
Voici ci-dessous un exemple de texte que l’on retrouve dans nos devis. Le paragraphe qui va de « TEST LETTRE » à « Poids d'un exemplaire : 1000 g » est un signet (champ) « TXT » qui est envoyé par un logiciel externe. Le moins qu’on puisse dire, c’est que la présentation n’est pas terrible !  
 
-----------------------------
Monsieur,
Nous vous remercions vivement de votre demande et soumettons à votre accord notre meilleure offre :
 
TEST LETTRE
 
 
 
Essai + travaux
>Format fini (volume) 117.0 x  78.0 cm
             Format hors tout 158.0 x 236.0 cm
 Format machine 162.0 x 242.0 cm
>Sur matière particulière
>Fabrication à définir  
>Opérations manuelles
 
 
Conditionnement
>Affrètement 1 pt 95
 
Poids d'un exemplaire : 1000 g
 
Prix pour     4 655 exemplaires                 >10 000.00  € HT
Prix pour les mille supplémentaires           >1 946.00  € HT
 
Paiement  à la livraison

-----------------------------
 
Le « > » est la représentation d’une tabulation
Au final après modifications manuelles, je retrouve ceci :
 
-----------------------------
Monsieur,
Nous vous remercions vivement de votre demande et soumettons à votre accord notre meilleure offre :
 
TEST LETTRE
 
Format fini 117.0 x  78.0 cm
Fabrication à définir  
Sur matière particulière
Opérations manuelles
 
Conditionnement
Affrètement 1 pt 95
 
Prix pour 4 655 exemplaires                                >10 000.00  € HT
Prix pour les mille supplémentaires                         >1 946.00  € HT
 
Paiement  à la livraison

-----------------------------
 
Voilà les opérations que je souhaiterai (si vous le voulez bien !) réaliser en automatique :
- Suppression des tabulations, ça je sais faire (voir ci-dessous)
- Titre « TEST LETTRE » en gras et souligné
- Laisser 1 seule ligne blanche après le titre
- Laisser 1 seule ligne blanche avant « Conditionnement »
- Suppression des lignes contenant « Essai + travaux », « Format hors tout », « Format machine », « Poids d'un exemplaire » et de la ligne blanche juste avant
- « Fabrication à définir » remonte d’une ligne et « Sur matière particulière » descend d’une ligne (inversion)
- Un truc sympa si c’était possible, suppression de « (volume ) » uniquement s’il n’y a que 2 nombres derrière et non pas 3 !
 
Le paragraphe « prix » est également un signet envoyé automatiquement. J’ai bien une tabulation avant chaque prix mais elle n’est pas fixe (idéalement à 9 sur l’échelle de tab) et elle n’est pas décimale, donc rien n’est aligné. De plus, il y a plusieurs espaces entre « pour » et la quantité, ne peut-on pas les supprimer pour n’en laisser qu’un seul ?
 
Voici le code pour les tabulations :
ActiveDocument.Bookmarks("TXT" ).Select
Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = vbTab
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.MoveEnd
    Selection.HomeKey  
 
Voilà, c’est pas mal mais je pense que ça peut être intéressant pour beaucoup d’entre nous.
 
Merci pour votre aide.

Reply

Marsh Posté le 27-11-2012 à 17:23:10   

Reply

Marsh Posté le 03-12-2012 à 11:45:21    

Bonjour à tous
 
J'ai trouvé une solution à tous mes problèmes de programmation sauf 1 seule : comment définir que la 1ere ligne du signet (le titre) doit être dans un style différent (gras et souligné). Pour info le texte de cette 1ere ligne est toujours différent !
 
Merci pour votre aide

Reply

Sujets relatifs:

Leave a Replay

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