Bonjour,
je dois reprendre un "vieux" fichier excel 2003 qui insérait des images par la méthode Pictures.Insert (donc les images sont liées).
J'ai donc remplacé la méthode Insert par Shapes.AddPicture (pour ne plus avoir les liaisons) mais ces liaisons semblent toujours exister (certainement parce que le fichier avait déjà été ouvert avec l'ancienne méthode d'insertion?).
ma question est : comment faire pour "casser" ces liaisons??
j'espère avoir été claire
je vous mets le bout de code (ancienne version et nouvelle version) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sub Insert_Image(picname, dirname) Dim picture_dir As String Dim picture_name As String picture_name = picname picture_name = picture_name & ".png" picture_dir = Left(ActiveWorkbook.Path, InStrRev(ActiveWorkbook.Path, "\")) + "Images_opt" picture_dir = picture_dir & "\" & dirname If fileExists(picture_dir, picture_name) Then picture_name = picture_dir & "\" & picture_name Set pic = ActiveSheet.Pictures.Insert(picture_name) end if
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Sub Insert_Image(picname, dirname) Dim picture_dir As String Dim picture_name As String Dim picture As IPictureDisp picture_name = picname picture_name = picture_name & ".png" picture_dir = Left(ActiveWorkbook.Path, InStrRev(ActiveWorkbook.Path, "\")) + "Images_opt" picture_dir = picture_dir & "\" & dirname If fileExists(picture_dir, picture_name) Then picture_name = picture_dir & "\" & picture_name Set picture = LoadPicture(picture_name) Set pic = ActiveSheet.Shapes.AddPicture(picture_dir, False, True, 5, 50, picture.Width, picture.Height) end if
merci à tous. bonne journée
Partager