|
Publicité ' | ||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2006 Messages : 72 ![]() |
Bonjour,
J'ai un (très long) fichier doc avec beaucoup de paragraphes numérotés. Structure type : Chapitre 1 1. Lorem ipsum... 2. ABraljfd podfs 3. dofidfo Par chance, les numéros de paragraphe sont dans un style "N° paragraphe", et le texte du paragraphe dans un style "Texte paragraphe". J'aimerais faire une macro qui change le texte d'un paragraphe donné. J'ai donc fait un UserForm avec les champs N° Chapitre et N° Paragraphe. Lorsque je fais rechercher, il retourne au début du doc, et là il cherche d'abord le chapitre demandé, puis il cherche le paragraphe demandé en fonction de son numéro. Jusqu'ici tout va bien : j'ai trouvé le paragraphe que je cherchais, très rapidement. La seconde étape, c'est que j'aimerais qu'il sélectionne tout le paragraphe donné, et qu'il le copie dans un textbox de mon UserForm, afin de le modifier... Je me suis donc dit qu'il fallait faire une sélection jusqu'à changement de style, non ? Donc voilà ma question : comment réussir à sélectionner le paragraphe demandé ? Merci, et désolé si je n'ai pas été clair. |
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 357 ![]() |
La raison de le mettre dans ton textbox est un peu floue.
Veux-tu modifier le style ou le contenu ou les deux ? Le fait de mettre le paragraphe dans le TextBox signifie qu'il faut copier le paragraphe et lorsque la modification est terminée, le remplacer. Pourquoi ne pas le modifier à la volée. Code :
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
||
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2006 Messages : 72 ![]() |
En fait, mettre le paragraphe dans le textbox me permet d'aller plus rapidement.
Par exemple, on me signale une faute d'orthographe dans le paragraphe 5 du chapitre 2. Avec la macro que je veux faire, je peux aller directement au paragraphe concerné, récupérer le texte du paragraphe, corriger la faute et le remplacer. (Je ne souhaite pas changer le style). Quand j'exécute ton code, il me dit "membre de données ou de méthode introuvable". |
|
|
00
|
|
|
#4 | ||
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 357 ![]() |
C'est normal, il est incomplet, ne sachant pas ce que je devais faire avec !
Code :
Reste ensuite à coller le texte corrigé. Mais pour les fautes d'orthographe, il y a un outil intégré à Word.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
||
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2006 Messages : 72 ![]() |
Merci.
Je ne comprends pas, il me refait la même erreur en surlignant le .Select à la fin de ActiveDocument.Paragraphs(i).select, peu importe ce que je mette dans les parenthèses. C'est non seulement pour les fautes non détectées par Word, mais aussi pour améliorer certaines tournures parfois. |
|
|
00
|
|
|
#6 | ||
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 357 ![]() |
Code :
Désolé. Essaie cette fois !
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
||
|
|
00
|
|
|
#7 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2006 Messages : 72 ![]() |
Nickel, merci beaucoup : ça marche !
Le seul souci que je rencontre, c'est que ma notion de paragraphe diffère de celle de Word (et je crois que c'est lui qui a raison) : en effet, il considère comme "paragraphe" plusieur des miens. Il va par exemple me retourner comme un seul paragraphe : 1. Lorem ipsum... 2. ABraljfd podfs Alors que je n'aurais souhaité que 1. Lorem ipsum... Je pressentais ce problème au début, c'est pourquoi la séparation entre les 2 paragraphes pouvait se détecter grâce au changement de style : 1. Lorem ipsum Le numéro est en style "num_paragraphe" et le texte est en style "texte_par" Sais-tu si ce que je veux réaliser est faisable malgré tout ? Ou j'en demande trop (ce que je conçois tout à fait !) |
|
|
00
|
|
|
#8 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 357 ![]() |
Un paragraphe est le texte situé entre deux symboles ressenblant à un p à retourné.
Si tu as de simples retours à la ligne, c'est toujours le même paragraphe. Mais un paragraphe est composés de phrases et de lignes. Une Phrase se termine par un point.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
|
|
00
|
|
|
#9 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2006 Messages : 72 ![]() |
Dans mes "blocs de texte" (je ne sais plus comment appeler ça), j'ai des fois plusieurs phrases, c'est pourquoi je ne peux pas utiliser le point comme critère de sélection.
Dans mon cas, la seule différence entre deux blocs de texte, c'est le changement de style. |
|
|
00
|
|
|
#10 | |||
![]() ![]() JF JousseaumeInscription : octobre 2007 Messages : 2 390 ![]() |
Salut,
J'ai repris la discussion depuis le début et si j'ai bien compris, tu veux accéder rapidement à un titre de ton document, sélectionner un(des) § puis les modifier. Ben t'as pas besoin de macro. Dans Word, il existe des mécanismes de liens (comme Excel ou dans un fichier HTML d'un site Web) qui renvoient directement sur des parties d'un document. Pour cela, il suffit d'utiliser le mécanisme d'hyperliens dans Word mis en oeuvre par les renvois sur des signets ou une table des matières basée sur un document structuré à partir d'une hiérarchie de titres, ce qui semble être ton cas. Citation:
- 1°) Crée un table des matières par la commande "Insertion-Référence-Tables et index..."-onglet "Table des matières". Choisis le format qui te plait (remarque: tu peux même ne pas cocher l'option de "Utiliser des liens hypertexte à la palce des pages" qui ne sert que pour la partie Web de Word) - 2°) Tu cliques sur le titre, sous-titre que tu veux ( Attention il faut parfois utiliser CTRL+Clic en fonction du paramétrage de ton Word) et Word te renvoit directement au chapitre que tu cherches. Remarque : Cette méthode est plus interéssante dans ton cas, car elle permet d'avoir des recherches aussi sur des titres sans sous-titres- 3°) Tu sélectionnes le(s) § qui suit(vent) et tu les modifies directement. Comme ça tu peux même modifier le style, en ajouter, en supprimer, faire du copier-coller (avec des mise en forme de caractères), ce qui n'est pas possible avec ton UserForm et surtout tu n'as pas besoin de macros .Pensez à éviter de faire des macros (même si vous êtes sur un site de développeur) lorsque l'outil fait déjà ce qu'il vous faut. Maintenant si tu veux vraiment savoir quand est-ce que tu changes de style de § par macro, voilà le code Code :
|
|||
|
|
00
|
|
|
#11 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2006 Messages : 72 ![]() |
Merci bien, je vais essayer ces solutions et je vous tiens au courant
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com