Macros - Inserer des Images dans des diapositives

  • Initiateur de la discussion Initiateur de la discussion nico125
  • 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 !

nico125

XLDnaute Nouveau
Bonjour,

Je cherche à insérer 74 images contenues dans un dossier dans une série 74 de diapositives.

Pour être plus précis, sur chacune des diapositives est écrit le nom d'une image. Je souhaiterai insérer l'image correspondante au nom en dessous de celui-ci.

Pourriez vous m'indiquez la démarche à suivre s'il-vous-plait?

Merci beaucoup!
 
Re : Macros - Inserer des Images dans des diapositives

J'ai commence par regarder les liens que vous m'avez conseillé:

Pour l’instant, les photos sont bien insérées dans chaque diapositive et au bon endroit. Mais, l’ordre d’insertion n’est pas encore modifié. Que suggériez-vous de d’ajouter pour que les photos apparaissent leurs diapositives respectives sachant que ces dernières ne sont classées dans un ordre précis.

Serait-il aussi possible de remplacer l'adresse du dossier où sont issue les photos par un code (Ex: "ThisWorkbook.Path" ou encore mieux "ThisWorkbook.Path\Photos") qui ne changent pas la macro si je déplace le fichier ?

Merci!




Public Sub InsertImage()

Dim FichTab(1) As String
Dim i As Integer
Dim intCountSlide As Integer
Dim strFile As String
Dim lngLeft As Long
Dim lngTop As Long

FichTab(1) = "C:\Documents and Settings\user\Desktop"

For i = 1 To 1
intCountSlide = 1
strFile = Dir(FichTab(i) & "\" & "*.jpg")
Do While Len(strFile) > 0
Select Case i
Case 1
lngTop = 200
lngLeft = 90
End Select
ActivePresentation.Slides(intCountSlide).Shapes.AddPicture FichTab(i) & "\" & strFile, msoFalse, msoTrue, lngLeft, lngTop
intCountSlide = intCountSlide + 1
strFile = Dir()
Loop
Next i

End Sub
 

Pièces jointes

Re : Macros - Inserer des Images dans des diapositives

Bonjour Nico125 🙂,
Pour le chemin, tu peux utiliser
Code:
ActivePresentation.Path
et pour récupérer le nom de l'image dans ton TextBox
Code:
ActivePresentation.Slides(i).Shapes(1).TextFrame.TextRange.Text
Bon courage 😎
 
Re : Macros - Inserer des Images dans des diapositives

Merci beaucoup JNP pour ta réponse!

Le premier code marche très bien! Serait-il possible d’ajouter un dossier où les photos seront contenues. Ex: ActivePresentation.Path \ Photos

En ce qui concerne le second point, où devrais-je placer le code? Je ne suis pas sûr de m’être correctement exprimé:

Chaque diapositive comporte un nom ;
Les diapositives ne sont pas triées par nom ;
Le nom est exactement le même que celui de la photo.
J’aimerai ajouter la photo correspondant au nom écrit sur la diapositive

Merci d’avance!






Public Sub InsertImage()

Dim FichTab(1) As String
Dim i As Integer
Dim intCountSlide As Integer
Dim strFile As String
Dim lngLeft As Long
Dim lngTop As Long

FichTab(1) = ActivePresentation.Path

For i = 1 To 1
intCountSlide = 1
strFile = Dir(FichTab(i) & "\" & "*.jpg")
Do While Len(strFile) > 0
Select Case i
Case 1
lngTop = 200
lngLeft = 90
End Select
ActivePresentation.Slides(intCountSlide).Shapes.AddPicture FichTab(i) & "\" & strFile, msoFalse, msoTrue, lngLeft, lngTop
intCountSlide = intCountSlide + 1
strFile = Dir()
Loop
Next i

End Sub
 
Re : Macros - Inserer des Images dans des diapositives

Re 🙂,
Tout simplement
Code:
ActivePresentation.Path & "\Photos"
et
Code:
strFile = ActivePresentation.Slides(i).Shapes(1).TextFrame.TextRange.Text & ".jpg"
Voilà.
Bonne journée 😎
 
Re : Macros - Inserer des Images dans des diapositives

Excellent! Encore merci!

Encore une petite question:

Si je change l'ordre des diapositives, seulement la première comportera la photo correspondante au nom, et cette même photo sera reportée sur la seconde diapositive.

Or, si j'ai 3 diapositives avec:

Diapo1: Nom A, Photo A
Diapo2: Nom C, Pas de photo
Diapo3: Nom B, Photo B

La photo A sera copie sur les diapositives 1 et 2, et aucune photo n'apparaît sur la diapositive 3.

Merci beaucoup!



Public Sub InsertImage()

Dim FichTab(1) As String
Dim i As Integer
Dim intCountSlide As Integer
Dim strFile As String
Dim lngLeft As Long
Dim lngTop As Long

FichTab(1) = ActivePresentation.Path & "\Pictures"

For i = 1 To 1
intCountSlide = 1
strFile = Dir(FichTab(i) & "\" & "*.jpg")
strFile = ActivePresentation.Slides(i).Shapes(1).TextFrame.TextRange.Text & ".jpg"

Do While Len(strFile) > 0
Select Case i
Case 1
lngTop = 200
lngLeft = 90
End Select
ActivePresentation.Slides(intCountSlide).Shapes.AddPicture FichTab(i) & "\" & strFile, msoFalse, msoTrue, lngLeft, lngTop
intCountSlide = intCountSlide + 1
strFile = Dir()
Loop
Next i

End Sub
 
Re : Macros - Inserer des Images dans des diapositives

Re 🙂,
Encore une petite question:
Si je change l'ordre des diapositives, seulement la première comportera la photo correspondante au nom, et cette même photo sera reportée sur la seconde diapositive.
Or, si j'ai 3 diapositives avec:
Diapo1: Nom A, Photo A
Diapo2: Nom C, Pas de photo
Diapo3: Nom B, Photo B
La photo A sera copie sur les diapositives 1 et 2, et aucune photo n'apparaît sur la diapositive 3.
Désolé mais j'ai rien compris 😕...
Bonne soirée 😎
 
Re : Macros - Inserer des Images dans des diapositives

Ok 🙂

Avec le code utilisé ci-dessus, lorsque j’exécute la macro, les photos A et B s’insère sur le bonne diapositives si et seulement si l’ordre des diapositives dans le PPT suit celui des noms A et B.

Pour illustrer :

Diapo1 : Si le nom écrit sur la diapositive est A, alors la photo intitulée A sera ajoutée;
Diapo2 : Si nom = B, alors Photo = B.

Si je change l’ordre des diapositives:

Diapo1 : Si nom = B, alors Photo = B;
Diapo2 : Si nom = A, alors Photo = B.

Si j’ajoute une diapositive :

Diapo1 : Si nom = B, alors Photo = B;
Diapo2 : Si nom = C, alors Photo = B;
Diapo3 : Si nom = A, Alors Photo = Aucune.


Or je souhaiterai que pour:

Diapo1: Nom B = Photo B
Diapo2: Nom C = Photo C (S'il y a une photo, sinon rien)
Diapo3: Nom A = Photo A

Il s'agit d'un PPT contenant 74 diapositives.

Encore merci!
 
Re : Macros - Inserer des Images dans des diapositives

Re 🙂,
En simplifiant un peu
Code:
Public Sub InsertImage()
Dim Chemin As String, I As Integer, NomFichier As String
Dim lngLeft As Long, lngTop As Long
Chemin = ActivePresentation.Path & "\Pictures"
For I = 1 To ActivePresentation.Slides.Count
NomFichier = ActivePresentation.Slides(I).Shapes(1).TextFrame.TextRange.Text & ".jpg"
lngTop = 200
lngLeft = 90
On Error Resume Next
ActivePresentation.Slides(I).Shapes.AddPicture Chemin & "\" & NomFichier, msoFalse, msoTrue, lngLeft, lngTop
On Error GoTo 0
Next I
End Sub
aucun problème chez moi 😛...
Bon WE 😎
 
- 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

Retour