Lien et selection d'un texte dans word [Résolu]

Messages postés
2
Date d'inscription
mardi 4 mai 2010
Dernière intervention
5 mai 2010
- - Dernière réponse : alaknanda
Messages postés
2
Date d'inscription
mardi 4 mai 2010
Dernière intervention
5 mai 2010
- 5 mai 2010 à 10:50
Bonjour

C'est la premiere fois que je fais une macro. Le but est de surligner une partie d'un document word en fesant un macro via un doc excel (si surligner est trop dure selectionner l'endroit voulu dans le doc word peut me suffir)


voici le code deja fait:

Dim wrdApp As Word.Application
Dim wrdDoc As Word.Document
Set wrdApp = CreateObject("Word.Application" )
wrdApp.Visible = True
Set wrdDoc = wrdApp.Documents.Open("C:\...\test.doc" )

Le code fonctionne et m'ouvre bien le dossier word mais comment faire la suite ?


Merci d'avance pour votre aide
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
75
3
Merci
Salut
Les VB de Word ou de Excel sont les mêmes. Seuls les noms des objets et les méthodes changent.
La meilleure solution est de créer/enregistrer une macro sous Word et de repiquer le code pour le faire exécuter côté Excel, en se basant sur les objets que tu viens de créer.
Par exemple, quand tu es sous Word, tu peux faire référence à ThisDocument. Mais sous Excel, ce terme aura pour équivalence l'objet document que tu déclares et ouvres, wrdDoc.
Donc les modifs sont simples.

Par exemple, sous Word, j'ai écrit un texte bidon puis j'ai commencé l'enregistrement d'une macro :
- je me suis déplacé de 1 mot à droite :
Selection.MoveRight Unit:=wdWord, Count:=1
- j'ai sélectionné les huit mots suivants (avec Shift et Control) :
Selection.MoveRight Unit:=wdWord, Count:=8, Extend:=wdExtend
- j'ai demandé un surlignement en jaune :
Options.DefaultHighlightColorIndex = wdYellow
Selection.Range.HighlightColorIndex = wdYellow


Ensuite, sous Excel, j'ai repris ton code auquel j'ai ajouté cette déclaration :
    Dim maSelection As Word.Selection
puis j'ai associé cet objet sélection à la sélection de l'appli :
    Set maSelection = wrdDoc.Application.Selection
puis, j'ai recopié la syntaxe fournie par Word en remplaçant "Selection" par "maSelection" :
    With maSelection
        .MoveRight Unit:=wdWord, Count:=1
        .MoveRight Unit:=wdWord, Count:=8, Extend:=wdExtend
        wrdApp.Options.DefaultHighlightColorIndex = wdYellow  ' /!\
        .Range.HighlightColorIndex = wdYellow
    End With
Tu noteras que, pour les sujets généraux, comme la modification d'option, j'ai ajouté l'objet de référence, wrdApp, devant la syntaxe Options
Et le tour est joué.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

Dire « Merci » 3

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

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

Commenter la réponse de cs_Jack
Messages postés
2
Date d'inscription
mardi 4 mai 2010
Dernière intervention
5 mai 2010
0
Merci
Genial, merci beaucoup ca marche
(et en plus j'ai compris grace a tes explication j'ai compris comment faire d'autre types de macro )
Commenter la réponse de alaknanda

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.