Modification d'objets dans un Word
Bonjour à tous
je souhaite accéder à des shapes qui sont dans un Word existant pour modifier leur contenu. Le problème c'est qu'on ne peut pas les renommer sous Word. J'ai donc fais une boucle For Each pour les trouver à partir de leur contenu
Voici mon code (simplifié):
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| Sub EditWord()
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Dim WordFile As String
'Spécifie le chemin d'accès
WordFile = MyDir & "\WordFile.docx"
Set WordApp = CreateObject("Word.Application")
'Affiche Word
WordApp.Visible = True
'Ouvre le document
Set WordDoc = WordApp.Documents.Open(WordFile)
.Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=2
WordApp.ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocumen
Dim Sh As Shape
With WordApp
For Each Sh In .ActiveDocument.Shapes
.ActiveDocument.Shapes(Sh.Name).Select
If .Selection.Text = "blabla" Then
.Selection.Text = "blablablabla"
End If
Next Sh
End With
End sub |
Le problème c'est que VB plante sur la ligne "For Each Sh In .ActiveDocument.Shapes" en affichant :"erreur d’exécution '13': incompatibilité de type"
J'ai recherché la solution sur plusieurs forums mais sans succès :cry:
Merci d'avance de votre aide