création d'un diaporama PPT depuis fichier Excel

fid

XLDnaute Nouveau
Bonjour à tous,

j'ai un dossier Excel : Devis-pour-ppt.xlsm
depuis un formulaire contenu dans feuille "menu"
je sélectionne dans la comboboxFeu sur l'onglet devis, le type de feu
cela remplit d'après les différentes feuilles du dossier, tous les onglets du formulaire
je veux ensuite depuis VBA (pour le moment) lancer la macro PPT
qui crée un diaporama basé sur le modèle DEVIS-PPT1.pptx

j'ai trouvé un exemple sur ce forum : Lien supprimé

je l'ai adapté, mais...

j'ai deux problèmes :
1er problème : si la cellule M de la feuille "description-prod" (correspondant à la colonne "FRESQUE" est différente de 0, alors créer diaporama en dupliquant la diapo 1
et en remplissant les différentes cellules du tableau de la diapo1 avec les valeurs correspondantes de la feuille "description-prod"

Code:
Sub PPT()
Dim objPPT As Object
Dim objPres As Object
Dim objSld As Object
Dim objShp As Object
Dim Rg As Range
 
 
With Sheets("description-prod")
    Tablo = Range("A2:N" & Range("N65000").End(xlUp).Row).Value
End With
 
Set objPPT = CreateObject("Powerpoint.Application")
objPPT.Visible = True
 
Set objPres = objPPT.Presentations.Open(ThisWorkbook.Path & "\DEVIS-PPT1.pptx")
objPres.SaveAs ThisWorkbook.Path & "\testdevis.pptx"
 
'recherche de la dernière cell M
With Worksheets("description-prod")
  Set Rg = .Range("M2:M" & Range("M65000").End(xlUp).Row)
End With
 
'si la cell M est différente de 0, alors fusion entre Excel et Ppt
 
   If ActiveCell <> 0 Then
  
For i = 1 To UBound(Tablo)
    Set objSld = objPres.Slides(1).Duplicate
    For Each objShp In objSld.Shapes
        If objShp.HasTable Then
            With objShp.Table
                X = X + 1
                .cell(1, 1).Shape.TextFrame.TextRange.Text = Tablo(X, 13)
                .cell(4, 1).Shape.TextFrame.TextRange.Text = Tablo(X, 6)
                .cell(4, 2).Shape.TextFrame.TextRange.Text = Tablo(X, 7)
                .cell(5, 2).Shape.TextFrame.TextRange.Text = Tablo(X, 11)
                .cell(5, 3).Shape.TextFrame.TextRange.Text = Tablo(X, 12)
            End With
        End If
    Next
Next
Else
ActiveCell.Offset(1, 0).Range("A1").Select
End If
 
objPres.Slides(1).Delete
objPres.save
objPres.Close
    
End Sub
==========
cela crée bien le diaporama mais :

1. ne tient pas compte de la valeur de la cellule M --> fusionne toutes les cellules même = 0
2. ne remplit pas les lignes suivantes du tableau du diaporama
3. met les diapos dans l'ordre inverse : commence la fusion par la dernière cellule et non la première

======================================================
2ème problèmeje voudrais sur le même diaporama, en diapo 2
insérer l'image qui correspond à la cellule M <> 0 et dont le chemin est contenu dans la colonne N de la feuille "description-prod"
et là je sèche quant à la bonne syntaxe en sachant que je dois avoir en résultat final :
diapo 1 avec les données
et à la suite diapo 2 avec l'image correspond au données de la diapo 1
et ainsi de suite
======================================================
un peu complexe n'est-ce-pas ?
je suis sûre de ne pas être loin du bon résultat
mais je n'y vois plus clair du tout
votre aide serait la bienvenue !
je joins le dossier pour plus de compréhension :
https://rcpt.yousendit.com/1021324747/6552a279085803f86b1e702ac7e13477
et d'avance merci
 

Discussions similaires

Réponses
1
Affichages
164
Réponses
0
Affichages
147
Réponses
2
Affichages
220
Réponses
2
Affichages
113

Statistiques des forums

Discussions
312 165
Messages
2 085 880
Membres
103 009
dernier inscrit
dede972