Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/04/2011, 15h35   #1
Invité de passage
 
Homme
Inscription : avril 2011
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : avril 2011
Messages : 8
Points : 0
Points : 0
Par défaut Recherche de mots au sein d'une sélection

Bonjour,

J'aimerais savoir comment faire pour limiter la recherche d'un mot (avec "find") à une sélection donné.

J'ai réalisé le code suivant mais il parcourt l'ensemble du document sans se limiter à la sélection.

Code :
1
2
3
4
5
6
7
8
 
ActiveDocument.Range(ActiveDocument.Bookmarks("Signet1").Start,ActiveDocument.Bookmarks("Signet2").End).Select
 
 
With Selection.Find
   Do While .Execute(FindText:="MOT", Forward:=True) = True
   Loop
End With
Merci d'avance.
HelioM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 18h10   #2
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 25
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 592
Points : 1 592
Envoyer un message via MSN à carden752
Bonjour,

il est possible d'utiliser la propriété find.wrap pour gérer les actions à effectuer lorsque la sélection n'a pas lieu sur tout le document.

Code :
1
2
3
4
5
6
7
8
ActiveDocument.Range(ActiveDocument.Bookmarks("Signet1").Start,ActiveDocument.Bookmarks("Signet2").End).Select
 
 
With Selection.Find
.Wrap = wdFindStop
   Do While .Execute(FindText:="MOT", Forward:=True) = True
   Loop
End With
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 18h59   #3
Invité de passage
 
Homme
Inscription : avril 2011
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : avril 2011
Messages : 8
Points : 0
Points : 0
Bonjour,

J'ai fait de multiples tests avec .wrap , cela n'a pas marché.
J'ai l'impression que la boucle poursuit la recherche sans le prendre en compte...
HelioM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 23h32   #4
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 25
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 592
Points : 1 592
Envoyer un message via MSN à carden752
Bonjour,

Essayez de mettre forward à false soit le code suivant :

Code :
1
2
3
4
5
6
7
8
ActiveDocument.Range(ActiveDocument.Bookmarks("Signet1").Start,ActiveDocument.Bookmarks("Signet2").End).Select
 
 
With Selection.Find
.Wrap = wdFindStop
   Do While .Execute(FindText:="MOT", Forward:=False) = True
   Loop
End With
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h31.


 
 
 
 
Partenaires

Hébergement Web