Lien et selection d'un texte dans word

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

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
5 mai 2010 à 00:56
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)
3
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
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 )
0
Rejoignez-nous