étendre la sélection à tout le mot où se trouve le curseur [Résolu]

Messages postés
12
Date d'inscription
samedi 10 septembre 2011
Statut
Membre
Dernière intervention
29 septembre 2011
- - Dernière réponse : Colquico7duSoir
Messages postés
12
Date d'inscription
samedi 10 septembre 2011
Statut
Membre
Dernière intervention
29 septembre 2011
- 25 sept. 2011 à 17:16
Bonjour à tous,

Pourriez-vous me dire comment écrire le code VBA Word qui permet la sélection automatique de la totalité de la longueur du mot dans lequel se trouve le curseur?

Je vous remercie +++
Afficher la suite 

9 réponses

Meilleure réponse
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
210
3
Merci
J'y parviens ainsi dans tous les cas de figure (caret au milieu ou au début ou à la fin du mot)
Selection.MoveStart unit:=wdWord, Count:=1
  Selection.MoveLeft unit:=wdWord, Count:=1
  Selection.MoveRight unit:=wdWord, Extend:=wdExtend


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 131 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
210
0
Merci
Bonjour,
Pourriez-vous me dire comment écrire le code VBA Word qui permet la sélection automatique de la totalité de la longueur du mot dans lequel se trouve le curseur?

1) Ne te semble-t-il pas que tu as oublié de préciser l'essentiel, à savoir sur quoi (quel contrôle de quelle fenêtre) se trouve le mot ?
2) tu parles par ailleurs de curseur. Le curseur est la représentation du point survolé par la souris. Il n'a pas exemple rien à voir avec le caret qui, lui, est la position du point d'insertion dans une zone d'édition. Alors : parles-tu du curseur ou parles-tu du caret ?


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
Messages postés
12
Date d'inscription
samedi 10 septembre 2011
Statut
Membre
Dernière intervention
29 septembre 2011
0
Merci
Bonjour ucfoutu,

Je veux parler du point d'insertion ... de ce que je pense être le curseur après que l'on a clické dans un texte.

J'avais tenté d'écrire une macro mais elle me sélectionne la fin du mot (par ex. si je clicke au milieu du mot vasculaires dans la phrase suivante ''pseudotumeurs vasculaires. introduction'',
ma macro me sélectionne ''pseudotumeurs vasculaires. introductio''

Dim sel As Selection
Set sel = Application.Selection
sel.MoveStart unit:=wdWord, Count:=1
sel.MoveRight unit:=wdWord, Extend:=wdExtend

End Sub

à l'évidence, il y a quelque chose qui ne marche pas.
Merci++
Commenter la réponse de Colquico7duSoir
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
210
0
Merci
Il s'agit donc du caret et non du curseur
Mais tu n'as toujours pas répondu à cette question :

sur quoi (quel contrôle de quelle fenêtre) se trouve le mot ?


Et en lisant ce que tu viens d'écrire : une autre question s'impose : développes-tu sous VB6 ou sous autre chose (et quoi alors) ?

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
Messages postés
12
Date d'inscription
samedi 10 septembre 2011
Statut
Membre
Dernière intervention
29 septembre 2011
0
Merci
Rebonjour ucfoutu,

je viens d'apprendre un mot. Je ne connaissais pas le terme caret. Merci

Il s'agit d'un document Word 2003 et je possède VBA version 6.3

Je voudrais récupérer le mot ''courant'' pour le réutiliser dans une macro.

à bientôt et merci
Commenter la réponse de Colquico7duSoir
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
210
0
Merci
Tu développes donc sous VBA et non sous VB6 !
Prends s'il te plait l'habitude de faire très attention au choix de la section dans laquelle tu "postes".
Je vais essayer de voir, mais il me faudra aller sur une machine avec Word.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
Messages postés
12
Date d'inscription
samedi 10 septembre 2011
Statut
Membre
Dernière intervention
29 septembre 2011
0
Merci
OK. Désolé
Commenter la réponse de Colquico7duSoir
Messages postés
12
Date d'inscription
samedi 10 septembre 2011
Statut
Membre
Dernière intervention
29 septembre 2011
0
Merci
Merci beaucoup.
Je n'étais pas loin, mais ...

Bonne journée à toi.
Commenter la réponse de Colquico7duSoir
Messages postés
12
Date d'inscription
samedi 10 septembre 2011
Statut
Membre
Dernière intervention
29 septembre 2011
0
Merci
J'ai complété et modifié le code pour ne sélectionner que le mot, sans, à sa droite, l'espace ou un éventuel caractère précédé d'un espace insécable
(Microsoft VB 6.3 _ VBA; Word 2003)

Sub Selectionmotsélectionné()
'
' Selectionmotsélectionné Macro
'Sélectionne uniquement le mot dans lequel se trouve le "caret". La variable sel désigne ce mot.

Dim sel As Selection
Set sel = Application.Selection
sel.MoveStart unit:=wdWord, Count:=-1
sel.MoveRight unit:=wdWord, Extend:=wdExtend

Dim FinSel1 As String
Dim FinSel2 As String
FinSel1 = Right(sel, 1)
FinSel2 = Right(sel, 2)
Select Case FinSel2
Case "Chr(160)&:"
sel.MoveEnd unit:=wdCharacter, Count:=-2
Case Else
Select Case FinSel1
Case Chr(160), ":", "/", ".", " "
sel.MoveEnd unit:=wdCharacter, Count:=-1
Case Else
sel = sel
End Select
End Select
End Sub


Il y a peut-être plus simple?
Bonne soirée
Commenter la réponse de Colquico7duSoir