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

Messages postés
2
Date d'inscription
mardi 4 mai 2010
Statut
Membre
Dernière intervention
5 mai 2010
- - Dernière réponse : alaknanda
Messages postés
2
Date d'inscription
mardi 4 mai 2010
Statut
Membre
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 

2 réponses

Meilleure réponse
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
61
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 193 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
Statut
Membre
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