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