Vba Word 2013 - Sélection Text entre deux formats de police

Habtar - 9 janv. 2016 à 16:13 - Dernière réponse : ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention
- 9 janv. 2016 à 19:16
Bonjour,

J'ai un document qui comporte plusieurs paragraphes, mais il a été mal construit et il n'y a pas de style affecté aux titres de chacune des parties. La seule chose qui distingue une partie du reste du texte et qu'elle commence toujours avec une police "Arial", 14 pts, rouge et en majuscule.

Faire le travail à la main serait long et fastidieux car le document est bien rempli...

Je pensais donc à une macro qui mettrait un peu d'ordre dans tous cela, j'ai déjà résolu certains problèmes, mais je bute sur un point : sélectionner, de manière itérative, le texte qui se situe entre deux parties (identifiables uniquement par la police ET la taille ET la couleur ET la casse).

Quelqu'un aurait une idée ?

Merci d'avance,
Afficher la suite 

Votre réponse

2 réponses

ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 9 janv. 2016 à 18:42
0
Merci
Bonjour,
Je n'en sais personnellement encore rien, car je n'utilise jamais VBA/Word (J'en sais donc encore moins que toi, qui es au moins débutant). Je vais donc ouvrir l'aide VBA et lire (ce que tu devrais également faire).
Je ne sais pas ce que je vais y trouver, mais je vais lire ...
Je suis d'avance persuadé de ce que je serai assez rapidement en mesure de te trouver une solution, même bâclée !
Pourquoi vais-je le faire ? Très simple : juste pour te prouver (et à d'autres également, dans la foulée) que cette aide VBA EST A LIRE et qu'elle suffit généralement.
A plus (je reviens après mon casse-croute)
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - Modifié par ucfoutu le 10/01/2016 à 11:57
0
Merci
Regarde à quoi j'arrive après 6 tranches de sauciflard et deux verres de vin rouge (du gros qui tache, hélas).
Dim toto As Paragraph
For Each toto In ActiveDocument.Paragraphs ' je boucle sur la collection des paragraphes
toto.Range.Select ' je sélectionne chacun de ces paragraphes, tour à tour
Selection.MoveLeft Unit:=wdWord, Count:=1 ' je vais au tout début du paragraphe
MsgBox "la 1ère lettre de ce paragraphe est " & Selection.Text & vbCrLf & _
" en police " & Selection.Font.Name & vbCrLf & _
"de taille " & Selection.Font.Size & vbCrLf & _
"de couleur " & Selection.Font.ColorIndex
Next

Comment ai-je cherché dans l'aide VBA ? J'ai commencé par le mot "paragraph" et la collection "paragraphs".
Le reste est venu tout seul, grâce à l'intellisense sur le mot selection (dans l'éditeur) et au mot Font (dans l'éditeur également).
Tu as là maintenant tout ce qu'il te faut pour aller partout où tu veux aller, comme tu l'entends (et je VEUX te faire confiance pour y parvenir). Il te suffit maintenant d'un tout petit "grain de sel".
Explication :
1) j'ai bâclé (suis certain de ce que j'aurais pu faire mieux)
2) j'ai laissé aller mes réflexes habituels (ils ne sont pas forcément les meilleurs, mais ...) et ma manière "idiote" de raisonner.
Voilà, ami. Ne prends pas ce message pour ce qu'il n'est pas. Il cherche non à "t'abaisser", mais au contraire à "t'ouvrir" à un certain esprit.

EDIT : change le Moveleft par :
Selection.MoveLeft Unit:=wdCharacter, Count:=1 ' je vais au tout début du paragraphe

(plus précis)
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.