XL 2016 RESOLU : Nommer automatiquement des images dans Powerpoint en VBA Excel

  • Initiateur de la discussion Initiateur de la discussion lulu_31
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

lulu_31

XLDnaute Nouveau
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.
 
En ajoutant .Name = Ref & ".bmp" dans le With au moment où je crée l'image dans le ppt, l'image prend bien le nom que je souhaite. Mais j'ai toujours un message d'erreur lorsque j'essaye de sélectionner cette image (Erreur d'exécution 13 (incompatibilité de type))
.

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)
With oPicture
.LockAspectRatio = msoFalse
.Top = ppPres.Slides(i + 1).Shapes("Image").Top
.Left = ppPres.Slides(i + 1).Shapes("Image").Left
.ZOrder msoBringToFront
.Name = Ref & ".bmp" 'Nouvelle ligne
End With

... (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
 
En fait non, ça fonctionne !
J'avais ajouté un Dim oPicture as Shape qui faisait planter la macro !

Avant de créer le post, j'avais pourtant essayé d'ajouter la ligne oPicture.Name = Ref & ".bmp", mais j'avais surement déjà ajouté la définition de ma variable... 🙁

Merci beaucoup !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
0
Affichages
1 K
Retour