Mon but est de créer un diapo par feuille XLS créer
Les données du diapo s'actualisant en fonction des tableaux contenu dans chacun des documents XLS
'Cochez la réf&érence Microsoft PowerPoint 11.0 Object Library Sub NouvellePresentation() Dim PptDoc As PowerPoint.Presentation Dim Diapo As PowerPoint.Slide Dim Sh As PowerPoint.Shape Dim Cs1 As ColorScheme Dim NbShpe As Integer Dim PptApp As Variant Set PptApp = CreateObject("Powerpoint.Application") Set PptDoc = PptApp.Presentations.Add With PptDoc '--- Ajoute un Slide .Slides.Add Index:=1, Layout:=ppLayoutBlank 'Crée une zone de texte (AddLabel) Set Sh = .Slides(1).Shapes.AddLabel(Orientation:=msoTextOrientationHorizontal, _ Left:=100, Top:=100, Width:=150, Height:=60) 'insère la valeur de la Cellule A1 dans une zone de texte Sh.TextFrame.TextRange.Text = Range("A1") 'Modifie la couleur du texte Sh.TextFrame.TextRange.Font.Color = RGB(255, 100, 255) '--- Ajoute un nouveau slide et le positionner en 2eme position Set Diapo = .Slides.Add(Index:=2, Layout:=ppLayoutBlank) 'copie le 1er graphique contenu dans la feuille Excel active ActiveSheet.ChartObjects(1).Copy 'collage dans la 2eme diapositive Diapo.Shapes.Paste 'Compte le nombre de shapes dans la diapositive: 'le dernier objet inséré correspond à l'index le plus élevé NbShpe = Diapo.Shapes.Count 'Renomme et met en forme l'objet collé With Diapo.Shapes(NbShpe) .Name = "monGraph" 'personnalise le nom .Left = 150 'définit la position horizontale dans le slide .Top = 100 'définit la position verticale dans le slide .Height = 300 'hauteur .Width = 400 'largeur End With '--- Modifie la couleur de fond dans les différents Slides Set Cs1 = .ColorSchemes(3) Cs1.Colors(ppBackground).RGB = RGB(UserForm1.TextBox1, UserForm1.TextBox2, UserForm1.TextBox3) .SlideMaster.ColorScheme = Cs1 End With 'Sauvegarde la présentation 'dans le meme répertoire que le classeur excel contenant la macro. PptDoc.SaveAs FileName:=ThisWorkbook.Path & "" & "NouvellePresentation_graph.ppt" 'ferme la presentation PptDoc.Close 'ferme powerpoint PptApp.Quit MsgBox "Opération terminée." End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question' affectation Set PptDoc = "Chemin de la présentation\MaPrésentation.ppt" ' ouverture du fichier PptApp .WindowState = ppWindowMaximized PptApp .Visible = True PptApp .Presentations.Open PptDoc
Dim j As Integer Dim nompptopen As String 'nom présentation à ouvrir Dim nompptsave As String 'nom présentation à enregistrer 'Récupère les données de la colonne G... For j = 1 To Range("G65536").End(xlUp).Row If Range("G" & j) = "" Then j = j + 1 Else nompptopen = Range("G" & j) nompptsave = Range("G" & j) MsgBox nompptsave End If Next j
FileCopy (ThisWorkbook.Path & "OLN-Ville-Base.ppt", ThisWorkbook.Path & "" & Nom & ".ppt")
Dim j As Integer Dim nompptsave As String 'nom présentation à enregistrer 'Récupère les données de la colonne G... For j = 1 To Range("G65536").End(xlUp).Row If Range("G" & j) = "" Then j = j + 1 Else nompptsave = Range("G" & j) FileCopy ThisWorkbook.Path & "" & "Base.ppt", ThisWorkbook.Path & "" & nompptsave & ".ppt" End If Next j.