OVH Cloud OVH Cloud

[VBA] Contenu d'une sélection

7 réponses
Avatar
Nemroth
Bonsoir à tout le monde,

J'ai enregistré une macro qui est la suivante :

Sub Macro1()
Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend
Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
End Sub

Elle fait une sélection...

Mais comment connaître le contenu de la sélection sans la copier dans le
presse-papier et la récupérer ensuite dans une variable ? Je ne sais pas
faire...

Une âme secourable peut-elle éclairer ma lanterne ?

Par avance merci

@+ Nemroth

7 réponses

Avatar
Anacoluthe
Bonjour !

"Nemroth" nous a écrit ...
J'ai enregistré une macro qui est la suivante :
Elle fait une sélection...
Mais comment connaître le contenu de la sélection sans la copier dans
le presse-papier et la récupérer ensuite dans une variable ?


La réponse simple (et suffisante ?) serait de dire
MaVariable = Selection.Text
Mais une sélection peut contenir une quantité incroyable
d'objets de toute sorte !!! Pas forcément du texte.
Si bien qu'en principe c'est dans un objet Range qu'il
faut enregistrer le 'contenu' de Selection ...
D'ailleurs le mieux en word-vba c'est de travailler
directement avec des objets Range. Selection c'est juste
bon pour le brave enregistreur de macros :-) )))

Anacoluthe
« La vraie question est : pourquoi sélectionner?
Je ne connais pas la réponse. »
- Albert JACQUARD

Avatar
Geo
Bonsoir Nemroth,


Bonsoir à tout le monde,

J'ai enregistré une macro qui est la suivante :

Sub Macro1()
Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend
Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
End Sub

Elle fait une sélection...

Mais comment connaître le contenu de la sélection sans la copier
dans

le presse-papier et la récupérer ensuite dans une variable ? Je ne
sais pas faire...


dim TaVAr as string
TaVar = Selection.Text

Je crois qu'on peut aussi écrire simplement:
TaVAr = selection

--

A+

Avatar
Nemroth
Bonsoir Anacoluthe

C'est très exactement ce dont j'avais besoin et ça me suffit amplement.
Je cherche juste à connaître le texte qui est sous la sélection (elle est au
tout début du document)
Ce texte est en blanc sur blanc pour ne pas être imprimé et indique la
nature du document, pour ensuite remplir les items d'un champ de formulaire
liste déroulante avec les noms des personnes pouvant utiliser le document
(j'irai chercher la liste des noms dans un classeur Excel fermé : voir le
fil du 1er de ce mois : VBA : Extraire les données d'un classeur Excel
fermé...)

On continue, on persévère, on va finir par y arriver...

Merci beaucoup pour ton aide, qui me permets de faire avancer le schmilili,
le schlimili, ...

@+ Nemroth

"Anacoluthe" a écrit dans le message de news:

Bonjour !

"Nemroth" nous a écrit ...
J'ai enregistré une macro qui est la suivante :
Elle fait une sélection...
Mais comment connaître le contenu de la sélection sans la copier dans
le presse-papier et la récupérer ensuite dans une variable ?


La réponse simple (et suffisante ?) serait de dire
MaVariable = Selection.Text
Mais une sélection peut contenir une quantité incroyable
d'objets de toute sorte !!! Pas forcément du texte.
Si bien qu'en principe c'est dans un objet Range qu'il
faut enregistrer le 'contenu' de Selection ...
D'ailleurs le mieux en word-vba c'est de travailler
directement avec des objets Range. Selection c'est juste
bon pour le brave enregistreur de macros :-) )))

Anacoluthe
« La vraie question est : pourquoi sélectionner?
Je ne connais pas la réponse. »
- Albert JACQUARD





Avatar
Nemroth
Bonsoir Geo,

Je ne vais pas réécrire ce que j'ai déjà écrit plus haut.

Merci à toi aussi

@+ Nemroth

"Geo" a écrit dans le message de news:

Bonsoir Nemroth,


Bonsoir à tout le monde,

J'ai enregistré une macro qui est la suivante :

Sub Macro1()
Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend
Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
End Sub

Elle fait une sélection...

Mais comment connaître le contenu de la sélection sans la copier
dans

le presse-papier et la récupérer ensuite dans une variable ? Je ne
sais pas faire...


dim TaVAr as string
TaVar = Selection.Text

Je crois qu'on peut aussi écrire simplement:
TaVAr = selection

--

A+







Avatar
Geo
Bonsoir Nemroth,


Ce texte est en blanc sur blanc pour ne pas être imprimé et indique
la

nature du document,


Tu sais qu'il y a d'autres solutions ?
Tu peux mettre des variables associées au document qui n'apparaissent
en aucun cas sur le document affiché ou imprimé, donc pas de risque
qu'elles soient détruites par inadvertance. Dans l'aide : "Variables,
propriété - Exemples"
Tu peux aussi utiliser les propriétés, par exemple il y a en standard
"Catégorie", tu peux même en ajouter de ton cru. les propriété
apparaissent avec l'explorateur de fichier et sont consultables sans
ouvrir le document.

C'est juste pour t'embrouiller un peu :-D
Mais cet outil est plein de ressources.

--

A+

Avatar
Nemroth
Bonsoir Géo,

Ca ne m'embrouille pas, ça m'éclaire !!!

Mais pas pour ce que je veux faire. La méthode que je souhaite utiliser me
semble suffisamment simple et gérable.
Mais il n'est jamais inutile de s'instruire. J'ai commencé à compulser
l'aide sur les varaibles de document et je vais continuer.
Peut-être que finalement je trouverai ça plus simple que ma méthode, après
coup.
En tous cas je me serai instruit.
Merci de ton aide.

PS pour la catégorie je regarderai aussi, of course...

@+ Nemroth

"Geo" a écrit dans le message de news:

Bonsoir Nemroth,


Ce texte est en blanc sur blanc pour ne pas être imprimé et indique
la

nature du document,


Tu sais qu'il y a d'autres solutions ?
Tu peux mettre des variables associées au document qui n'apparaissent
en aucun cas sur le document affiché ou imprimé, donc pas de risque
qu'elles soient détruites par inadvertance. Dans l'aide : "Variables,
propriété - Exemples"
Tu peux aussi utiliser les propriétés, par exemple il y a en standard
"Catégorie", tu peux même en ajouter de ton cru. les propriété
apparaissent avec l'explorateur de fichier et sont consultables sans
ouvrir le document.

C'est juste pour t'embrouiller un peu :-D
Mais cet outil est plein de ressources.

--

A+






Avatar
geo
Bonjour

-----Message d'origine-----

PS pour la catégorie je regarderai aussi, of course...


la macro est même toute faite là :
http://faq.ms.word.free.fr/VBA/VBA.htm

A+