|
Publicité ' | ||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : avril 2011 Messages : 8 ![]() |
Bonjour à tous,
Je suis novice et je cherche à faire une macro qui doit être relativement simple. J'aimerais que ma macro fasse les deux choses suivantes: Sachant que X est une variable (entier) que j'initialise au début de la macro. -Qu'elle recherche la X ième occurence d'un mot qui commence par "RSK" ET qui a un style particulier :"Enum1 Titre" (il y a d'autres mots commençant par "RSK" mais avec un autre style et je ne veux pas qu'ils soient pris en compte). -Qu'elle sélectionne la ligne où ce mot a été repéré ainsi que toutes les lignes suivantes jusqu'à l'occurence du X+1 ème mot qui commence par "RSK" ET qui a le style "Enum1 Titre". S'il n'y a plus de X+1 ème mot il faut qu'elle sélectionne toutes les lignes jusqu'à un signet qui existe dans mon document qu'on appellera SIGNET. Grand merci d'avance à ceux qui se pencheront sur mon problème |
|
|
00
|
|
|
#2 |
![]() ![]() |
Bonjour,
Regardes du côté de la fonction find pour chercher une occurence, quelque chose du genre do while .execute(findtext:="RSK", style:="Enum titre1", forward=True) = True Et incrémenter un compteur dans la boucle pour compter les occurences puis comparer dans cette boucle le compteur à X auquel cas, on mémorise la position. Recherche d'une X +1ème occurence. Si trouvée, mémorisation position puis fin de boucle sinon recherche de l'emplacement du signet. J'ai pas trop le temps là mais je te posterai un code demain soir si t'as pas réussi. Pour t'aider, tu peux regarder cette partie de la FAQ.ici
__________________
Cordialement, Christophe Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche |
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : avril 2011 Messages : 8 ![]() |
Merci pour ta réponse rapide Christophe.
Voici ce que j'ai fait jusqu'à maintenant : Code :
J'ai plusieurs problèmes : -Il y a une erreur de type (erreur 13) à la ligne du "do while", je pense que c'est à cause du paramètre Format... -J'arrive pas à enregistrer les valeurs trouvées dans pos1 et pos2, l'erreur est du type "objet requis". -sans compter tous les problèmes que je ne vois pas encore du fait de mon niveau d'archi débutant ! Je continue de chercher... Si as un peu de temps pour m'aider, je suis toujours preneur |
||
|
|
00
|
|
|
#4 |
![]() ![]() |
Bonjour,
Il faut utiliser style pas format
__________________
Cordialement, Christophe Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : avril 2011 Messages : 8 ![]() |
Bonjour,
Oui j'avais déjà essayé "style" mais ça n'a pas marché. Mon paramètre de style n'est pas reconnu... Mais mon vrai souci est au niveau du stockage ou de la sélection des données trouvées par "find", au niveau des lignes du genre . Je pense que ce n'est pas le bon moyen de coder le stockage... Et ma boucle doit pas être bien faite car en mettant des msgbox j'ai l'impression qu'elle ne prend que le dernier "RSK" du document... |
|
|
00
|
|
|
#6 | ||
![]() ![]() |
Bonjour,
Oui effectivement, c'est un objet pour stocker les positions dans le document. Code :
__________________
Cordialement, Christophe Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche |
||
|
|
00
|
|
|
#7 | ||
|
Invité de passage
![]() Inscription : avril 2011 Messages : 8 ![]() |
Bonjour,
Euh... je ne comprends pas trop ta réponse. A quoi sert: Code :
|
||
|
|
00
|
|
|
#8 | ||
![]() ![]() |
Bonjour,
Selon l'itération, fin ne prend pas la même valeur (il n'est pas sur la même zone). Cependant, il faut le lier par la position sur le document actif. Code :
__________________
Cordialement, Christophe Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche |
||
|
|
00
|
|
|
#9 |
![]() ![]() |
Bonjour,
Pour la gestion du style, c'est sur l'objet find.
__________________
Cordialement, Christophe Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche |
|
|
00
|
|
|
#10 | ||
|
Invité de passage
![]() Inscription : avril 2011 Messages : 8 ![]() |
Bonjour,
Pour ceux que ca pourrait intéresser, voila un code qui marche : Code :
Bref, si un jour quelqu'un a un code plus propre à proposer qui répond à la question de mon premier poste je suis preneur. En attendant, merci carden pour ton aide. Je laisse un peu de temps au cas où d'autres réponses viendraient avant de mettre "résolu". |
||
|
|
00
|
|
|
#11 | ||
![]() ![]() |
Bonjour HelioM,
Pour le style, tu as essayé de mettre Code :
Par contre pourquoi tu crées des signets pour mémoriser les emplacements? C'est pour rechercher plus facilement après?
__________________
Cordialement, Christophe Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche |
||
|
|
00
|
|
|
#12 | ||
|
Invité de passage
![]() Inscription : avril 2011 Messages : 8 ![]() |
Bonjour carden,
Pour le style, ca ne marche pas dès que je mets le ".style" avant le "do while". En revanche ca ne donne pas d'erreur quand je le mets dans la boucle comme ça: Code :
Pour les signets, ben en tâtonnant c'est le seul moyen qui a marché. Les autres méthodes donnaient des erreurs ou ne donnaient pas le résultat voulu... |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com