[VB6 -> VBA]Savoir où est la sélection sur une page Word en vue Écran

Résolu
pjouv Messages postés 5 Date d'inscription samedi 12 novembre 2011 Statut Membre Derniè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

9 réponses

pjouv Messages postés 5 Date d'inscription samedi 12 novembre 2011 Statut Membre Dernière intervention 6 mai 2013
6 mai 2013 à 17:06
Bonjour.
Je me réponds à moi-même car j’ai fini par trouver la solution à mon problème d’affichage : c’est ActiveWindow.GetPoint.
Pour le code cf. http://www.vbfrance.com/codes/REPOSITIONNER-SELECTION-DANS-FENETRE-WORD_55130.aspx
Merci.
3
Utilisateur anonyme
22 avril 2013 à 20:16
Bonjour,

Dans l'aide de VBA pour Word

Référence du développeur Word
Selection.End, propriété
0
pjouv Messages postés 5 Date d'inscription samedi 12 novembre 2011 Statut Membre Derniè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…
0
Utilisateur anonyme
22 avril 2013 à 21:36
Bonjour,

si elle est en haut, en bas


Franchement !

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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
22 avril 2013 à 21:39
Et puis avec Selection.Extend et Selection.Collapse tu peux augmenter/réduire ta selection à l'écran.
0
pjouv Messages postés 5 Date d'inscription samedi 12 novembre 2011 Statut Membre Derniè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.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
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.
0
pjouv Messages postés 5 Date d'inscription samedi 12 novembre 2011 Statut Membre Derniè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…
0
Utilisateur anonyme
6 mai 2013 à 20:53
Bonjour,

Tu peux toujours jeter un œil là-dessus. C'est en C aiguisé, mais il y a un convertisseur C aiguisé sur ce site; et un convertisseur autonome C aiguisé VB.net écrit en VB.net ici.
0
Rejoignez-nous