Bonjour

J'ai un document Word avec 4 photos (Donc 4 Shapes) que je ne veux pas toucher.

J'insère un tableau Excel que je place entre la photo 2 et 3 et que voudrais redimensionner. Mon tableau devient donc la 3ème image dans le document Word

J'ai écrit cette macro qui marche bien si je n'ai pas de photos derrière mon tableau inséré, c'est à dire si mon tableau est la 5ème image

Sinon, bien sûr si met mon index en dur sur le InLineshapes (c'est à dire InLineshapes(3)) cela fonctionne mais je ne veux pas de choses en dur

En fait quand ma macro s'exécute, InLineShape se position sur la 5ème image et redimensionne cette 5ème image et non ma 3ème

Je suis perdu.

Voici mon code. Si quelqu'un peut m'aider. Merci d'avance

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
29
30
31
32
33
 
Sub Test()
 
Dim AppWord As New Word.Application
Dim NuméroDernièreImage As Integer
Dim NomFichier As String
 
NomFichier = "C:\Users\mbo\Documents\_Exemples_Fusion_Excel_Word\MonFichierWord2.docx"
 
AppWord.Documents.Open NomFichier
 
AppWord.Visible = True
 
NuméroDernièreImage = AppWord.ActiveDocument.InlineShapes.Count
 
            With AppWord
                   .Selection.HomeKey Unit:=wdStory   'envoi en début de page
                   'recherche du signet
                   .Selection.Goto What:=wdGoToBookmark, Name:="Périmètre_F01"
            End With
 
            ThisWorkbook.Worksheets("Proposition_Périmètre").Range("B6:D15").Copy
 
            NuméroDernièreImage = NuméroDernièreImage + 1
 
            AppWord.Selection.PasteSpecial link:=False, DataType:=wdPasteEnhancedMetafile, Placement:=wdInLine, DisplayAsIcon:=False
            Application.CutCopyMode = False
 
            With AppWord.ActiveDocument.InlineShapes(NuméroDernièreImage)
                 .Width = CentimetersToPoints(8)  'largeur en cm
            End With
 
End Sub