Bonjour à toutes et tous,
Je viens vers vous car je suis curieux et j'ai envie de me faciliter la vie sur certaines tâches de mon petit boulot en parallèle de mes études qui n'en finissent plus de finir.
Je suis secrétaire à mi-temps et j'ai déjà réussi à faire des macros pour nettoyer des documents, insérer des éléments et automatiser de la mise en forme. Rien de bien sorcier, j'ai fait cela avec l'enregistreur de macros. Mais celui-ci montre ses limites pour ce que je veux lui faire faire et je ne trouve pas la réponse à ma question et en cherchant je n'ai pas trouvé de manière claire de faire étape par étape ce que je veux faire. Je ne veux pas forcément du tout cuit car je veux comprendre / apprendre (la seule expérience que j'ai en codage est l'adaptation de feuilles de styles xsl...). Assez raconté ma vie, voici l'idée.
J'ai un (énormément) document, dans lequel j'ai des paragraphes qui correspondent à des citations de pièces (vous l'aurez deviné, je suis secrétaire dans un cabinet d'avocats). J'aurais souhaité faire une macro qui me permette :
- de trouver tous les paragraphes qui commencent par "Pièce n°"
- qu'ils soient tous sélectionnés en même temps
- de m'assurer, s'ils ne le sont pas déjà, que ceux-ci sont bien en gras et affectés d'une tabulation (ça je peux le faire à la main), la fonction pourrait s'arrêter après le deuxième tiret.
- de les copier dans le presse papier, de manière à ce que je puisse les coller ensuite dans la trame qui correspond au bordereau des pièces
Je ne souhaite pas passer par des styles car j'ai peur de mettre le souk dans nos modèles et je ne suis pas le seul à me servir du poste et passer par une recherche de texte permettrait de m'en servir pour d'autres choses.
Je vous joint un document exemple.
La seule chose que j'ai trouvé sur le forum est ce fil.
avec bien sûr ce code qui m'a semblé être du tout cuit pour mon cas :
J'étais heureux, je n'avais qu'à remplacer "Octave" par "Pièce n°" et le tour était joué.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 dim texte as string dim cherché as string dim trouvé as Integer Cherché = "Octave" For each paragraphe in activedocument.paragraphs paragraphe.select texte = selection.text 'Puisque VBA n'a pas de méthode, ou de fonction contains (VB.net oui), 'il faut tricher un peu Trouvé = instr(texte, Cherché) select case Trouvé case is > 0 'On l'a trouvé selection.copy 'Coller dans l'autre document 'Mais là, je n'ai pas le temps 'On peut utiliser l'enregistreur de macros pour 'avoir un canevas de code Case else End select selection.collapse next
Cependant en faisant cela, lorsque j'appuie sur le bouton lecture de VBA pour vérifier qu'il n'y a pas de soucis j'ai "Erreur d'exécution '438' Propriété ou méthode non gérée par cet objet. Le débogage met
en surbrillance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part paragraphe.Select
Je vous remercie par avance de l'aide que vous pourrez m'apporter !
Partager