Bonjour,
J’ai un problème de migration d’une macro Excel de Excel 2007 vers Excel 2016.
Ma macro a pour but d’insérer une image dans un fichier powerpoint, puis de la mettre aux bonnes dimensions.
Dans Excel 2007, mon code est le suivant :
Element = Worksheets("Data").Range("F" & i).Value
Ref = Worksheets("Data").Range("G" & i).Value
lien_image = Worksheets(Element).Range("B1").Value & "\" & Ref & ".bmp"
Set oPicture = ppPres.Slides(i + 1).Shapes.AddPicture(lien_image, True, True, 381, 267)
… (je fais plusieurs modifications sur le slide)
If Element = "Autre" Then
Set oPicture = ppPres.Slides(i + 1).Shapes(Ref & ".bmp")
With oPicture
.LockAspectRatio = msoFalse
.Top = ppPres.Slides(i + 1).Shapes("Image").Top
.Left = 434.6
End With
Endif
Cette macro fonctionne très bien sous Excel 2007.
Dans Excel 2016, la macro s’arrête à la ligne en gras dans le code ci-dessus (Set oPicture = ppPres.Slides(i + 1).Shapes(Ref & ".bmp")).
La raison pour laquelle la macro ne fonctionne pas est que : lors de l’ajout d’une image dans Powerpoint avec 2007, l’objet créé (oPicture) prend automatiquement le nom du fichier image. Dans la version 2016, l’objet créé ne prend pas le nom de l’image mais s’appelle image1 (le numéro dépendant du nombre d’images insérées dans le fichier).
Comment faire pour nommer les images insérées par le nom du fichier source ?
Merci d’avance.
J’ai un problème de migration d’une macro Excel de Excel 2007 vers Excel 2016.
Ma macro a pour but d’insérer une image dans un fichier powerpoint, puis de la mettre aux bonnes dimensions.
Dans Excel 2007, mon code est le suivant :
Element = Worksheets("Data").Range("F" & i).Value
Ref = Worksheets("Data").Range("G" & i).Value
lien_image = Worksheets(Element).Range("B1").Value & "\" & Ref & ".bmp"
Set oPicture = ppPres.Slides(i + 1).Shapes.AddPicture(lien_image, True, True, 381, 267)
… (je fais plusieurs modifications sur le slide)
If Element = "Autre" Then
Set oPicture = ppPres.Slides(i + 1).Shapes(Ref & ".bmp")
With oPicture
.LockAspectRatio = msoFalse
.Top = ppPres.Slides(i + 1).Shapes("Image").Top
.Left = 434.6
End With
Endif
Cette macro fonctionne très bien sous Excel 2007.
Dans Excel 2016, la macro s’arrête à la ligne en gras dans le code ci-dessus (Set oPicture = ppPres.Slides(i + 1).Shapes(Ref & ".bmp")).
La raison pour laquelle la macro ne fonctionne pas est que : lors de l’ajout d’une image dans Powerpoint avec 2007, l’objet créé (oPicture) prend automatiquement le nom du fichier image. Dans la version 2016, l’objet créé ne prend pas le nom de l’image mais s’appelle image1 (le numéro dépendant du nombre d’images insérées dans le fichier).
Comment faire pour nommer les images insérées par le nom du fichier source ?
Merci d’avance.