Bonjour,
Le titre est peut-être un peu trop large mais ça pourrait répondre à mon besoin et je n'ai pas trouvé mieux. Je travaille sous Word 2010 mais la question doit être la même pour les autres versions.
Mon besoin est le suivant : j'utilise une macro pour procéder à des ajustements de la mise en page de quelques éléments sur tout un document (une fois que j'ai fini de rédiger).
Exemple très concret : je définis généralement un style de corps de texte avec un espace de 6 points après un paragraphe et un autre style de liste avec un espace de seulement 3 points après un paragraphe. Mais dans le cas d'un enchaînement corps de texte -- liste - corps de texte, je veux que l'espace à la fin du dernier paragraphe de ma liste (donc avant le premier paragraphe de corps de texte qui suit cette liste) soit aussi de 6 points (et pas de 3 points comme défini dans le style de liste). Pour cela, je parcours la collection Paragraphs et j'ajuste la mise en page quand je tombe sur cette configuration.
Je voudrais faire quelque chose de similaire avec des tableaux — ou des figures, le problème serait le même pour ce que j'en sais. Problème, les tableaux ne font pas partie de la même collection que les paragraphes.
J'avais pensé à énumérer la collection des tableaux mais comment alors désigner le paragraphe qui précède ou suit immédiatement un tableau, d'autant plus qu'il n'existe pas forcément si ce tableau est précédé (ou suivi) d'un autre tableau ou d'une figure ??
J'ai donc un peu cherché s'il n'existe pas une collection VBA qui contienne tous les éléments dans l'ordre d'un document mais je n'ai rien trouvé.
J'ai aussi essayé de raisonner « comme un utilisateur » (puisque une bonne partie des bibliothèques VBA sont conçues comme cela), de sélectionner le premier paragraphe puis d'essayer de sélectionner l'élément suivant du document avec la classe Selection. Raté, les méthodes de cette classe qui permettent de le faire demandent de spécifier le type d'élément (paragraphe, tableau, figure, etc.) à sélectionner...
Bref, ai-je loupé quelque chose ou y a-t-il une astuce ?
Merci d'avance :-)
Partager