pjouv
Messages postés5Date d'inscriptionsamedi 12 novembre 2011StatutMembreDernière intervention 6 mai 2013
-
22 avril 2013 à 14:34
Utilisateur anonyme -
6 mai 2013 à 20:53
Bonjour.
Je suis sur Windows XP et Office 2010.
J’utilise plusieurs macros VBA qui me permettent de rechercher dans mes textes des éléments particuliers par Selection.Find.Execute.
Le problème est qu’après la recherche le texte est souvent masqué à demi, en haut ou en bas de la fenêtre, ce qui le rend illisible.
En vue Normal (wdNormalView), j’y arrive bien en réduisant la sélection, puis en la rétablissant, ce qui la remet dans la page, puis en faisant défiler comme souhaité.
[Code :
If Selection.Information(wdVerticalPositionRelativeToTextBoundary) = -1 Then
Set SelRa = Selection.Range
' Force la fenêtre à afficher la sélection :
Selection.MoveLeft Unit:=wdCharacter, Count:=1
SelRa.Select
Set SelRa = Nothing
ActiveWindow.ActivePane.LargeScroll Down:=1
Do While Selection.Information(wdVerticalPositionRelativeToTextBoundary) < 100
ActiveWindow.ActivePane.SmallScroll up:=1
Loop
End If
Fin de code]
Je voudrais maintenant pouvoir faire la même chose en vue Écran (wdWebView) mais l’information wdVerticalPositionRelativeToTextBoundary ne fonctionne pas ici.
Question : quelqu’un sait-il comment savoir, en vue Écran (vue « Web » dans la version anglaise de 2010), où se trouve le texte sélectionné dans la fenêtre – s'il est en haut, en bas, s’il est apparent ou non ?
Merci pour votre aide.
Pjouv
pjouv
Messages postés5Date d'inscriptionsamedi 12 novembre 2011StatutMembreDernière intervention 6 mai 2013 22 avril 2013 à 20:29
Bonsoir.
Merci pour votre réponse.
Selection.End me donne la position absolue de la sélection dans le texte, mais ne dit pas si cette sélection est visible ou non dans la fenêtre ouverte, si elle est en haut, en bas…
Je prends le texte suivant directement de l'aide de VBA pour Word, à Selection.Start pour faire changement. Mais c'est moi qui est découragé et qui souligne.
Début de copie:
La position de début fait référence à la position du caractère la plus proche du début de l'article
Fin de copie
Donc avec Selection.Start, tu as la position du premier caractère en nombre de caractères depuis le début du document.
Avec Selection.End, tu as la position du dernier caractère sélectionné en nombre de caractères depuis le début du document.
Avec un peu d'intelligence tu devrais être capable de déduire si tu es près du début ou près de la fin.
Et puis, l'objet selection te permet de placer ton point d'insertion (curseur) à l'endroit où tu veux.
Vous n’avez pas trouvé la réponse que vous recherchez ?
pjouv
Messages postés5Date d'inscriptionsamedi 12 novembre 2011StatutMembreDernière intervention 6 mai 2013 22 avril 2013 à 22:34
Ne nous énervons pas.
Je crois que tu ne comprends pas ce que je veux faire.
Sans doute que je ne suis pas clair ?
Je ne cherche pas à savoir quelle est la position du caractère dans le texte (son numéro d’ordre, que me donne effectivement les Selection.Start, .End etc.)
Je cherche à ce que mon code puisse connaître la position de la sélection à l’intérieur de la fenêtre, encore une fois si elle est en haut, en bas, ou si elle est cachée.
Tu es d’accord qu’il y a un ascenseur à droite de la fenêtre qui permet de faire défiler le texte ?
Donc, sans changer la valeur de ma sélection, je peux déplacer la sélection vers le haut, vers le bas, voire la faire disparaître si je sors de la fenêtre. Les valeurs de Selection.Start et .End resteront les mêmes quelle que soit la position de la sélection dans la fenêtre. Elles ne me sont donc d’aucune aide pour ce que je veux faire.
Comprends-tu maintenant ?
Merci.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018220 6 mai 2013 à 19:04
Bonjour,
Je ne travaille pas avec Word du tout, mais l'ai sur ma machine et viens d'y jeter un petit coup-d'oeil :
Il me semble (je dis bien "me semble") que ceci devrait suffire :
Selection.Range.Select
A moins que j'aie mal compris le problème.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
pjouv
Messages postés5Date d'inscriptionsamedi 12 novembre 2011StatutMembreDernière intervention 6 mai 2013 6 mai 2013 à 20:15
Bonsoir.
Non, cet ordre va sélectionner une plage du texte, mais ne gère pas sa position dans la fenêtre. Word décide de vous l’afficher un peu où il veut, en haut ou en bas de la fenêtre, selon ses critères…