|
Publicité ' | ||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() 442 Valy Inscription : octobre 2010 Messages : 31 ![]() |
Bonjour à tous.
J'ai une macro qui, dans un grand texte, supprime toutes les lignes se trouvant entre deux expressions ("ATT124") Le problème est qu'à la fin du document, la boucle ne s'arrête pas et finit par tout me supprimer. Comment-lui dire de s'arrêter lorsqu'il n'y a plus de texte? Voici mon code : Code :
|
||
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 315 ![]() |
Salut,
Je pense que ce n'est pas la solution. Ta boucle doit être basée sur le résultat de la rechercher et pas sur une boucle fixe. La méthode Revoie une valeur True tant que la recherche aboutit. Elle renvoie False dès que la recherche n'aboutit plus. Base donc ta boucle sur la valeur renvoyée. Code :
Dans ton code, que la chaîne soit trouvée ou pas, la ligne suivant est exécutée : Tu vas donc faire une suppression 500 fois en suivant.
__________________
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 | ||
|
Invité de passage
![]() 442 Valy Inscription : octobre 2010 Messages : 31 ![]() |
Salut Heureux-oli (jeu de mot avec ravi-oli?
Merci pour ta réactivité. En fait, je cherche à garder les lignes où il est écrit ATT124. Je désire supprimer toutes les autres lignes. Or ton code cherche une expression et la supprime. Et il est impossible de mettre: Code :
Si tu as une autre idée je suis preneur. Merci |
||
|
|
00
|
|
|
#4 | ||
|
Membre du Club
![]() Inscription : décembre 2010 Messages : 21 ![]() |
Bonjour,
Je ne sais pas si ta question est toujours d'actualité, mais tu peux quand même baser ta boucle sur l'exécution de ta recherche. Il y a plusieurs façons de le faire : comme le disait Heureux-oli avec un Do et un booléen test pour l'arrêter ou avec un While. Comme je suis une adepte du While cela donnerait : Code :
|
||
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : décembre 2010 Messages : 21 ![]() |
Au fait, si tu notes
Code :
Selection.MoveLeft Unit:=wdCharacter, Count:=Len("wdParagraph") Par contre, je ne sais pas comment faire pour garder sa sélection active en y retirant le dernier paragraphe. J'ai le même soucis sur ma macro... J'ai pu grugé car le début de ma sélection est aussi le début du document, mais sinon tous les mouvements que je fais modifie le début de ma sélection et non la fin... Si quelqu'un a une idée...? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com