Macro : Obtenir synonymes d'une liste de mots automatiquement

shura11

XLDnaute Nouveau
Bonjour,
Je vais essayer d'être clair dans ma demande.

J'ai en fait une liste de mots (300 environs) dans une colonne Excel, et je souhaite, grâce au dictionnaire des synonymes, afficher tous (ou du moins déjà un) synonymes dans la colonne d'à côté pour chacun des mots au lieu de devoir le faire à la main, un à un.

Il se trouve que j'ai fait ma recherche et je suis tombé sur ce poste-là :
Need a thesaurus object access and dump into sheet via macro
Donc je précise avant tout que je n'y connais absolument rien aux macros. Donc j'ai créé ma macro sur Excel (en remplacement wdEnglishUS par wdFrench, ne sait-on jamais), posé ma liste de mots dans une colonne excel et lancé la macro; sauf que j'obtiens cette erreur :
"Erreur de compilation
Type défini par l'utilisateur non défini"

J'imagine que c'est parce que la macro a été créé pour Excel 2003, du coup elle n'est plus forcément compatible avec la version de 2007.
Est-ce que vous pourriez m'aider à résoudre mon problème et à avoir une macro fonctionnelle ?

Merci.
 

Dranreb

XLDnaute Barbatruc
Re : Macro : Obtenir synonymes d'une liste de mots automatiquement

Bonjour.

Vérifiez la liste des références disponibles, menus Outils, Références de VBA. Veillez à cocher celles qui définissent les bibliothèques et objets que vous utilisez dans votre programmation.
 

shura11

XLDnaute Nouveau
Re : Macro : Obtenir synonymes d'une liste de mots automatiquement

Merci pour votre réponse rapide.
En effet, il semblerait que la référence Microsoft Word Object Library qui était nécessaire n'était pas cochée.

Je vous remercie pour l'aide, aussi minime qu'elle puisse vous paraître, que vous m'avez apportée. Merci encore.
 

Staple1600

XLDnaute Barbatruc
Re : Macro : Obtenir synonymes d'une liste de mots automatiquement

Bonsoir à tous

shura11 (Bienvenue sur le forum)
POUR INFO:
Il est possible aussi d'écrire le code de façon à ne pas de soucier de savoir si la référence est cochée ou pas
(Cela a ses avantages et ses inconvénient, à chacun de voir ;))
(test OK sur XL2013)
Code:
Sub SynonymFind()
Dim wdApp As Object
vColumn = Left(Columns(ActiveCell.Column).Address(0, 0), 2 + (ActiveCell.Column < 27))
Set wdApp = CreateObject("Word.Application")
wdApp.Visible = True
wdApp.Documents.Add DocumentType:=wdNewBlankDocument
Do While ActiveCell.Row <= Cells(Rows.Count, vColumn).End(xlUp).Row
On Error GoTo NextWord
vSyn = Application.Proper(ActiveCell.Text)
If wdApp.SynonymInfo(Word:=vSyn, LanguageID:=wdFrench).Found = True _
And wdApp.SynonymInfo(Word:=vSyn, LanguageID:=wdFrench).MeaningCount > 0 Then
vList = wdApp.SynonymInfo(Word:=vSyn, LanguageID:=wdFrench).SynonymList(1)
wdApp.Selection.TypeText Text:="The Synonyms for "
wdApp.Selection.Font.Bold = wdToggle
wdApp.Selection.TypeText Text:=vSyn & ":    "
wdApp.Selection.Font.Bold = wdToggle
For i = 1 To UBound(vList)
If i = UBound(vList) Then
wdApp.Selection.TypeText Application.Proper(vList(i))
Else
wdApp.Selection.TypeText Application.Proper(vList(i)) & "   "
End If
Next i
End If
wdApp.Selection.TypeParagraph
wdApp.Selection.TypeParagraph
NextWord:
ActiveCell.Offset(1, 0).Select
Loop
End Sub
 

shura11

XLDnaute Nouveau
Re : Macro : Obtenir synonymes d'une liste de mots automatiquement

Bonsoir et merci d'avoir pris le temps de lire ma requête.
J'ai quand même pris le temps de tester votre macro sans cocher la référence (avec Excel 2007 toujours) et je tombe sur une erreur :
"Erreur d'execution 5190 :
Impossible de démarrer le dictionnaire des synonymes."
Il me souligne en jaune ces deux lignes de votre macro :

If wdApp.SynonymInfo(Word:=vSyn, LanguageID:=wdFrench).Found = True _
And wdApp.SynonymInfo(Word:=vSyn, LanguageID:=wdFrench).MeaningCount > 0 Then

Je ne fais que donner un retour, je ne peux rien dire sur l'erreur comme je ne m'y connais pas.
 

Staple1600

XLDnaute Barbatruc
Re : Macro : Obtenir synonymes d'une liste de mots automatiquement

Re

Comme je l'écrivais
(test OK sur XL2013)
Pas d'Excel 2007 sous la main pour tester, néanmoins testes ce ci pour voir si Word s'ouvre bien avec Excel 2007
Sub TestSynonymFind()
Dim wdApp As Object
'vColumn = Left(Columns(ActiveCell.Column).Address(0, 0), 2 + (ActiveCell.Column < 27))
Set wdApp = CreateObject("Word.Application")
wdApp.Visible = True
wdApp.Documents.Add DocumentType:=wdNewBlankDocument
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 203
Membres
103 157
dernier inscrit
youma