Mise en page d'un signet sous Word par macro - VB/VBA/VBS - Programmation
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
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.