Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Envoie d'un tableau dynamique vers powerpoint

1 réponse
Avatar
julou_binou
Bonjour,
J'ai un tableau dynamique qui affiche 200 fiches différentes (chacune d'elle
selectionnable via un bouton de tri)
Je voudrai faire une macro qui prend le 1er tableau l'exporte sous
powerpoint, pui sil exporte le second tableau (tjs dans le meme fichier
powerpoint) et ainsi de suite.

Est ce possible?

Merci de vos réponses

1 réponse

Avatar
PMO
Bonjour,

Un exemple de code qui devrait vous mettre sur la piste.

ATTENTION : il est nécessaire de faire référence à PowerPoint.
Dans le menu du VBE faites Outils/Références puis rechercher et cocher
Microsoft Powerpoint xx.0 Object Library (xx = la version disponible
chez vous)

Copier ensuite le code suivant :

'*****************
Option Explicit
Sub OleXL2PPT()
Dim PPT As PowerPoint.Application
Dim PRES As PowerPoint.Presentation
Dim DIAPO As PowerPoint.Slide
Dim SH As PowerPoint.ShapeRange
Dim i&
Dim Chemin
Dim A$
Dim B$
Set PPT = CreateObject("powerpoint.application")
Set PRES = PPT.Presentations.Add
For i& = 1 To Sheets.Count
Sheets(i&).[a1].CurrentRegion.Copy
Set DIAPO = PRES.Slides.Add _
(PRES.Slides.Count + 1, ppLayoutBlank)
Set SH = DIAPO.Shapes.PasteSpecial _
(DataType:=ppPasteOLEObject, link:=msoTrue)
With SH
.Top = 100
.Left = 100
.Height = 300
.Width = 500
End With
Next i&
Application.CutCopyMode = False
A$ = ActiveWorkbook.Name
A$ = Mid(A$, 1, Len(A$) - 4) & ".ppt"
Chemin = Application.GetSaveAsFilename( _
InitialFileName:=A$, _
filefilter:="Présentation (*.ppt),*ppt", _
Title:="Exporter dans une présentation PowerPoint")
If Chemin <> False Then
B$ = Mid(Chemin, 1, Len(Chemin) - Len(A$) - 1)
With Application.FileSearch
.NewSearch
.LookIn = B$
.Filename = A$
.Execute
If .FoundFiles.Count > 0 Then
i& = MsgBox(prompt:="Le fichier '" & _
A$ & "' existe déjà dans " & B$ _
& vbCrLf & "Voulez-vous le remplacer ?", _
Title:="Fichier déjà existant", _
Buttons:=vbOKCancel + _
vbExclamation + vbDefaultButton2)
If i& = vbCancel Then GoTo fin
End If
End With
PRES.SaveAs Chemin
End If
fin:
PPT.Quit
Set PPT = Nothing
End Sub
'*****************

Ce code exporte les tableaux Excel vers des diapositives Powerpoint
avec LIAISON et seulement lorsque les tableaux Excel sont
renseignés à partir de la cellule "A1" et sans ligne ou colonne vide
entre les données.

Cordialement.

--
PMO
Patrick Morange



Bonjour,
J'ai un tableau dynamique qui affiche 200 fiches différentes (chacune d'elle
selectionnable via un bouton de tri)
Je voudrai faire une macro qui prend le 1er tableau l'exporte sous
powerpoint, pui sil exporte le second tableau (tjs dans le meme fichier
powerpoint) et ainsi de suite.

Est ce possible?

Merci de vos réponses