Macros - Inserer des Images dans des diapositives

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!
 

nico125

XLDnaute Nouveau
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

  • Test.zip
    41.2 KB · Affichages: 164
  • Test.zip
    41.2 KB · Affichages: 166
  • Test.zip
    41.2 KB · Affichages: 162

JNP

XLDnaute Barbatruc
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 :cool:
 

nico125

XLDnaute Nouveau
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
 

JNP

XLDnaute Barbatruc
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 :cool:
 

nico125

XLDnaute Nouveau
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
 

JNP

XLDnaute Barbatruc
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 :confused:...
Bonne soirée :cool:
 

nico125

XLDnaute Nouveau
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!
 

JNP

XLDnaute Barbatruc
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 :p...
Bon WE :cool:
 

nico125

XLDnaute Nouveau
Re : Macros - Inserer des Images dans des diapositives

Le résultat est vraiment top!

Encore une petite question, serait-il possible de modifier les dimensions et la taille des photos dès qu'elles sont insérées?

Merci encore!
 

Discussions similaires

Réponses
1
Affichages
291
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 161
Messages
2 085 852
Membres
103 005
dernier inscrit
gilles.hery