Merci pour ton aide et tes explications
Malheureusement, comme je te l'ai dit, je suis débutant et toutes ces notions sont très abstraites pour moi.
J'ai récupérer un code que j'ai adapté assez facilement pour mon besoin mais je n'ai pas modifié grand chose et j'ai vraiment tatonné.
La logique VBA et toutes les formules liées sont un grand mystère pour moi.
Quand tu me donnes ces conseils, je suis déja bloqué au moment de placer correctement les lignes à adapter dans la structure actuelle (c'est te dire mon niveau ).
Cela dit, j'ai essayé, en regardant le code d'origine de comprendre comment adapter ce que tu m'as donné..
Pour mieux comprendre je vais donc décomposer un peu le code actuel pour voir si je comprend tout bien
1 2 3 4 5 6 7 8 9 10
|
Sub PPT()
Dim objPPT As Object
Dim objPres As Object
Dim objSld As Object
Dim objShp As Object
With Sheets("Pige")
Tablo = Range("A2:B" & Range("A65000").End(xlUp).Row).Value
End With |
>> On demande à excel de chercher dans la feuille 'Pige' et on lui dit que "Tablo" est égale à une place de cellule déterminée.
1 2 3 4 5
| Set objPPT = CreateObject("Powerpoint.Application")
objPPT.Visible = True
Set objPres = objPPT.Presentations.Open(ThisWorkbook.Path & "\note.ppt")
objPres.SaveAs ThisWorkbook.Path & "\test.ppt" |
>> On lui donne l'instruction d'ouvrir un fichier PPT dont le modèle est note.ppt et de la sauvegarder sous test.ppt
1 2 3 4 5 6 7 8
| For i = 1 To UBound(Tablo)
Set objSld = objPres.Slides(2).Duplicate
For Each objShp In objSld.Shapes
If objShp.HasTable Then
With objShp.Table
x = x + 1
.Cell(2, 1).Shape.TextFrame.TextRange.Text = Tablo(x, 1)
.Cell(2, 2).Shape.TextFrame.TextRange.Text = Tablo(x, 2 End With) |
>> C'est là que ca se complique.. je ne comprend pas le "For i" :'
Ensuite on lui dit de prendre la slide 2 et de la dupliquer selon les ligne du "Tablo".
--> Pour moi c'est ici que je dois coller la suite du code ??
Maintenant et avant de fermer le code je tente d'ajouter ce que je veux selon les lignes que tu m'as donné.
Du coup je fais :
1 2 3
| With Sheets("Bilan")
.Range("B3").Value
End With |
>> On demande à Excel d'aller chercher dans la feuille bilan et de récupérer la valeur de la cellule B3.
1 2
| Dim objSld As Slide
Set objSld = objPres.Slides(1) |
>> On lui demande de sélectionner la slide 1 du ppt.
Et là je ne sais plus quoi faire
Déja que je ne suis pas sur que mon interprétation est bonne.
Dois-je rajouter quelque chose comme ça : ?
.Shapes(2).TextFrame.TextRange.Text = Range("B3")
Merci bcp
Partager