1 ligne XL = 1 diapo PPT (Excel vers Power Point)

MACx

XLDnaute Occasionnel
Bonjour à vous,

Ci-dessous un code tapé dans un module VBA, qui me permet de rapatrier certaines cellules (Excel) vers un slide (Power Point).
Jusque là tout se déroule parfaitement puisque les cellules B2:C2 sont copiées vers le Slide n°2.
Ce que je souhaite faire maintenant c'est que chaque ligne excel soit copiée vers une nouvelle diapo à chaque fois:
(Excel) L2 = (PowerPoint) Diapo 2
(Excel) L3 = (PowerPoint) Diapo 3
(Excel) L550 = (PowerPoint) Diapo 550
et ainsi de suite...
J'imagine qu'il faut utiliser la fonction Loop mais je ne sais pas m'en servir :(

Si quelqu'un pouvait m'aider svp ?! Merci d'avance

Code:
Option Explicit

Sub ActualiserPPT()

Dim PptApp As PowerPoint.Application
Dim PptDoc As PowerPoint.Presentation
 
Set PptApp = CreateObject("Powerpoint.Application")

    PptApp.Visible = True

Set PptDoc = PptApp.Presentations.Open("C:/Adresse_du_ppt.pptx")
'PptApp.ActiveWindow.View.GotoSlide 2
 
With PptDoc
    'copie la plage de cellules dans la feuille Excel active
    Feuil1.Range("B2:C2").Copy
    'Effectue un collage dans la 2eme diapositive
    .Slides(2).Shapes.Paste
 
    With .Slides(2).Shapes(.Slides(2).Shapes.Count)
        .Name = "Nom Prénom" 'Renomme l'objet collé
        .Left = 15 'position horizontale dans le slide
        .Top = 10 'position verticale dans le slide
        .Height = 25 'hauteur
        .Width = 300 'largeur
    End With
 
    'insère le contenu de la cellule A1 dans la deuxième zone de texte,
    'du 3eme slide
    '.Slides(3).Shapes(2).TextFrame.TextRange.Text = Range("A1")
 
    'sauvegarde la présentation
    '.Save
End With
 
'ferme la présentation
'PptDoc.Close
'ferme powerpoint
'PptApp.Quit
 
End Sub
 

MACx

XLDnaute Occasionnel
Re : 1 ligne XL = 1 diapo PPT (Excel vers Power Point)

Bonjour Pierre,
Merci beaucoup pour ton aide.
Pourrais-tu m'expliquer stp cette partie là ?

Code:
Set Sh = .Slides(i + 1).Shapes.AddTable(1, 2, 40, 100, 650, 350)
            For j = 1 To 2
                With Sh.Table.Cell(i, j + 1).Shape.TextFrame.TextRange ' j+1 =>colonne B (2) puis C (3)
                    .Text = ThisWorkbook.ActiveSheet.Cells(i, j).Text
                    .ParagraphFormat.Alignment = ppAlignCenter
                End With
            Next j
        End With

Dans mon code à moi par exemple, B2 et C2 vont toujours ensemble. donc je n'ai pas besoin de créer une zone de texte par colonne (Si j'ai bien compris, c'est ce que fait le code ci-dessus, c'est ça ?)
Vraiment merci pour ton aide.
MACx
 

MACx

XLDnaute Occasionnel
Re : 1 ligne XL = 1 diapo PPT (Excel vers Power Point)

Vraiment merci pour tes explications, très pédagogique! ;)
Par contre est-il possible d'utiliser un PPT déjà existant et donc du coup de le réactualiser ?
Avec cette méthode ce qui pourrait me poser problème (mais peut être pas à toi) est le fait que sur excel je pourrais avoir aujourd'hui 500 ligne et demain 498 (donc il faudrait supprimer deux diapos, les deux dernières tant qu'à faire)

Si trop compliqué alors je resterai sur le fait de créer une nouvelle diapo à caque fois.

Par contre, ma première diapo est une diapo d'introduction/présentation (c'est la seule qui est différente des autres) et je souhaite donc que ma deuxième diapo (qui recevra la ligne 2 de ma feuille excel) se duplique pour toutes les autres. En effet j'ai personnalisé l'arrière plan et je souhaite que cela reste à chaque fois. Ce qui n'est pas le cas avec ce code.

Merci Pierre pour toute ton aide !
MACx
 

MACx

XLDnaute Occasionnel
Re : 1 ligne XL = 1 diapo PPT (Excel vers Power Point)

Merci! Je vais essayer ça (C'est la toute première fois que je code en utilisant ppt, et déjà juste avec Excel je n'y connais pas grand chose! lol)

Cela veut dire que la ligne 2 de mon excel devra aller sur le slide 3 c'est ça ?
Merci encore
 

MACx

XLDnaute Occasionnel
Re : 1 ligne XL = 1 diapo PPT (Excel vers Power Point)

Bonjour Pierre !
Merci pour ce fichier de démo. J'approche de ce que je veux réaliser :)
Cependant, quand je lance la macro, le fichier PPT s'ouvre, les tâches s'exécutent mais en suite le fichier (PPT) plante et se ferme.
Microsoft PowerPoint a cessé de fonctionner
Du coup un nouveau ppt vierge s'ouvre.
Mais finalement le fichier ResultatPPT se crée quand même.
Je vais essayer de regarder cela plus en détails demain, mais aurait tu une idée sur "Pourquoi le fichier plante" ?
Merci
 

Discussions similaires

Statistiques des forums

Discussions
312 106
Messages
2 085 352
Membres
102 871
dernier inscrit
Maïmanko