nerok
Messages postés4Date d'inscriptionjeudi 12 avril 2007StatutMembreDernière intervention20 septembre 2011
-
14 sept. 2011 à 15:27
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
20 sept. 2011 à 11:25
Bonjour à tous,
Je suis en train de créer un Userform pour parcourir en miniatures des fichiers ppt et insérer des diapositives dans la présentation en cours.
Dans la pratique, je souhaiterais donc me rapprocher de la fonction "Insérer une diapositive à partir de..." déjà présente dans Powerpoint.
J'ai commencé à faire un formulaire mais je suis coincé sur la partie visualisation des miniatures.
J'ai suivi un tuto qui passe par un fichier image pour chaque slide mais ça me semble fastidieux.
Existe-t-il un moyen plus simple de créer une sorte de "trieuse de diapositives" dans un Userform
Voici mon code
J'ai 1 textbox, 1 image et 3 boutons sur mon userform
Sub CommandButton1_Click()
Dim fd As FileDialog
Dim PrezSource As PowerPoint.Presentation
Dim TempSlide As String
Set fd = Application.FileDialog(msoFileDialogFilePicker)
Dim vrtSelectedItem As Variant
With fd
.AllowMultiSelect = False
.InitialFileName = "C:"
.Filters.Add "Présentations Powerpoint : *.ppt; *.pptx", "*.ppt; *.pptx", 1
.Filters.Add "Tous les fichiers : *.*", "*.*", 2
.FilterIndex = 1
If .Show = -1 Then
TextBox1.Text = fd.SelectedItems.Item(1)
Else
End If
End With
Set PrezSource = PowerPoint.Presentations.Open(fd.SelectedItems.Item(1), , , msoFalse)
TempSlide = "C:\TempSlide000.jpg"
PrezSource.Slides.Item(1).Export TempSlide, "jpg"
Image1.Picture = Nothing
With Image1
.Picture = LoadPicture(TempSlide)
.PictureSizeMode = fmPictureSizeModeZoom
.Visible = True
End With
Set fd = Nothing
End Sub
Sub CommandButton2_Click()
UserForm1.Hide
End Sub
Sub CommandButton3_Click()
ActivePresentation.Slides.InsertFromFile TextBox1.Text, ActivePresentation.Slides.Count, 1, 1
End Sub
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 14 sept. 2011 à 15:44
Bonjour,
Sous VBA ?
Un contrôle ImageList, par exemple.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
nerok
Messages postés4Date d'inscriptionjeudi 12 avril 2007StatutMembreDernière intervention20 septembre 2011 20 sept. 2011 à 10:54
Merci pour ta réponse.
Par contre, c'est le fait d'exporter chaque diapositive en image qui me semble fastidieux. N'y a-t-il pas un moyen de récupérer directement une capture de diapositive sans passer par cet export ?
Comment Powerpoint gère les miniatures dans la fenêtre "Trieuse de diapositives" ?
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 20 sept. 2011 à 11:25
Je dirais (sans en être certain) qu'il crée dynamiquement des contrôles images et qu'il y met une image dans chaque contrôle.
Il est vraisemblable que, pour ce faire, il utilise directement StdPicture et des fonctions de l'Api de Windows.
Mais cet outil ne semblant pas te permettre de charger une image autrement (pas prévu) qu'en l'important depuis un fichier, je te vois mal "barré", puisque PowerPoint ne t'offre apparemment pas de contrôles dôtés d'un hdc (comme une picturebox). Il te faudrait donc pratiquement construire de A à Z tout ce que PowerPoint a dans son ventre pour cet aspect et, en plus, être capable d'en assurer la persistance (et ce dernier aspect est de loin le plus dur).
Enfin : je te réponds à l'aveuglette, var je n'ai pas PowerPoint.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient