Insertion d’une image sur une page spécifique (Microsoft Word)
Suman doit utiliser une macro pour insérer une image à la page 10 d’un document particulier. Il s’interroge sur la meilleure façon, au sein de la macro, de procéder.
Si vous voulez que l’image soit la seule chose de la page 10, la tâche est plutôt simple: utilisez la macro pour localiser la page 10, insérez l’image, puis insérez un saut de page après l’image. Cela fait alors remonter tout après l’image d’une page, de sorte que l’ancienne page 10 devient la page 11, la page 11 devient la page 12, et ainsi de suite.
Sub InsertImage1() Dim PicPath As String PicPath = "C:\My Pictures\My Scans\scan0002.jpg" ActiveDocument.GoTo(What:=wdGoToPage, Count:=10).Select Selection.InlineShapes.AddPicture FileName:=PicPath, _ LinkToFile:=False, SaveWithDocument:=True Selection.InsertBreak Type:=wdPageBreak End Sub
La macro insère l’image sous forme de forme en ligne. Si vous préférez, vous pouvez insérer l’image sous forme de forme flottante, ce qui permettrait au texte de s’enrouler autour de l’image. La macro suivante fait cela, ainsi que le centrage de l’image au centre de la page:
Sub InsertImage2() Dim PicPath As String Dim aShape As Shape PicPath = "C:\My Pictures\My Scans\scan0002.jpg" ActiveDocument.GoTo(What:=wdGoToPage, Count:=10).Select Set aShape = Selection.InlineShapes.AddPicture(FileName:=PicPath, _ LinkToFile:=False, SaveWithDocument:=True).ConvertToShape With aShape .WrapFormat.Type = wdWrapTight .RelativeHorizontalPosition = wdRelativeHorizontalPositionPage .RelativeVerticalPosition = wdRelativeVerticalPositionPage .Top = wdShapeCenter .Left = wdShapeCenter .Select End With End Sub
Si vous souhaitez que votre image remplace une image existante (peut-être par une image mise à jour), vous pouvez le faire en utilisant une macro un peu plus complexe.
La macro suivante localisera la première image sur la page souhaitée et la remplacera par une forme en ligne.
Sub ReplaceImage() Dim r1 As Range Dim r2 As Range Dim nPages As Long Dim nP As Long Dim PicPath As String Dim sTemp As String PicPath = "C:\My Pictures\My Scans\scan0002.jpg" nP = 10 ' Page number on which to replace the image sTemp = "" nPages = ActiveDocument.ComputeStatistics(statistic:=wdStatisticPages) If nP > nPages Then sTemp = "You are trying to go to a non-existent page" Else Set r1 = ActiveDocument.GoTo(What:=wdGoToPage, Count:=nP) If nP = nPages Then Set r2 = ActiveDocument.Range r1.End = r2.End Else Set r2 = ActiveDocument.GoTo(What:=wdGoToPage, Count:=nP + 1) r1.End = r2.Start - 2 End If If r1.InlineShapes.Count = 0 Then sTemp = "Page " & nP & " does not have an inline picture" Else r1.InlineShapes(1).Select Selection.InlineShapes.AddPicture FileName:=PicPath, _ LinkToFile:=False, SaveWithDocument:=True End If End If If sTemp > "" Then MsgBox sTemp End Sub
WordTips est votre source pour une formation Microsoft Word rentable.
(Microsoft Word est le logiciel de traitement de texte le plus populaire au monde.) Cette astuce (13139) s’applique à Microsoft Word 2007, 2010, 2013, 2016, 2019 et Word dans Office 365.