XL 2013 exporter automatiquement vers PPT un formulaire excel

oz2007

XLDnaute Junior
Hello,

Après avoir passé ma matinée à chercher la solution je suis complètement perdue...
Voila j'ai une base de donnée excel que je souhaite exporter automatiquement dans un ppt mais dans un "template". En faite je ne sais même pas comment commencer. Faut-il commencer par créer un formulaire sur excel ou le faire dans ppt? puis comment exporter tout ça automatiquement? J'ai 200 lignes et 1 ligne égale 1 slide PPT.

J'ai mis l'image que je souhaite en PPT (sur ppt je souhaite un tableau excel pas une image) et l'excel en pj pour être plus claire. La mise en forme du ppt est exactement celle que je souhaite.

Merci d'avance
oz2007
 

Pièces jointes

  • Image1.jpg
    Image1.jpg
    46.5 KB · Affichages: 182
  • test excel.xlsx
    10.1 KB · Affichages: 62
  • Image1.jpg
    Image1.jpg
    46.5 KB · Affichages: 85
  • test excel.xlsx
    10.1 KB · Affichages: 53

chris

XLDnaute Barbatruc
Re : exporter automatiquement vers PPT un formulaire excel

Bonjour

...
J'ai mis l'image que je souhaite en PPT (sur ppt je souhaite un tableau excel pas une image)

Tu ne peux pas créer des Excel dans Powerpoint sans les avoir créé au préalable en Excel.

Il y a deux façons d'insérer des documents Excel dans une présentation :
  • soit incorporer les documents et dans ce cas ils seront indépendants de ta source actuelle et pèseront très lourd (200 classeurs dans le ppt)
  • soit lier un ou des classeurs Excel ce qui permet l'actualisation en cas d'évolution de la source et n'alourdit pas le ppt.

La question essentielle est de comprendre l'objectif opérationnel car il y a d'autres possibilités et avant de donner une piste, on a besoin de comprendre...
 

oz2007

XLDnaute Junior
Re : exporter automatiquement vers PPT un formulaire excel

l'objectif est d'avoir un formulaire dans Excel qui se remplit tout seul avec les infos de chaque ligne (comme sur l'image) puis de pouvoir intégrer chaque questionnaire dans le ppt. Donc du coup je dois d'abord faire un formule excel? c'est ce que j'ai essayé ce matin mais par contre je ne vois pas comment après exporter ce formulaire
 

chris

XLDnaute Barbatruc
Re : exporter automatiquement vers PPT un formulaire excel

Re

Tu ne réponds pas complétement à la question. J'ai parlé de besoin opérationnel : pourquoi Powerpoint et quel usage ? Impression, projection, contraintes de mise à jour...

Pour faire une formulaire Excel par ligne il faut déjà en faire un avec les données d'une ligne dont la position soit déterminée par une cellule et puisse donc varier.
Ensuite si tu en veux autant que de lignes il faut le programmer par VBA.
Ensuite je t'ai déjà indiqué les limites de l'intégration dans PowerPoint.

Ta dernière réponse est ambiguë "des fiches pré formatées Excel" ne clarifie pas...
 

oz2007

XLDnaute Junior
Re : exporter automatiquement vers PPT un formulaire excel

C'est pour une projection et oui cela doit se mettre à jour si l'on modifie l'excel.
Peut être qu'il faut que je crée un tableau dans Excel avec un roulotte qui mette à jour ma fiche et que je copie-colle dans PPT?
 

chris

XLDnaute Barbatruc
Re : exporter automatiquement vers PPT un formulaire excel

Re

Si tu copies/colles de façon classique tu auras une transposition en tableau PowerPoint, non évolutif
Si tu copies/colles en incorporant le fichier tu n'auras pas de mise à jour
Si tu copies/colles avec liaison, seul le dernier affichage est lié, puisque c'est le principe de la mise à jour
Si tu copies/colles en image tu auras toutes tes fiches comme sur le modèle Excel mais non évolutif

Il faut donc

  • soit autant de tableaux Excel liés que de lignes,
  • soit un code VBA en boucle qui change de ligne et
    • soit copie le tableau obtenu sous forme d'image dans PPT.
    • soit duplique une slide modèle et y inscrit les éléments dans les cases prévues (pas un format Excel mais un tableau PPt)
  • VBA à relancer quand on veut une mise à jour...
Projeter 200 fiches identiques me parait bizarre : j'espère que l'auditoire ne s'endormira pas...

Ce type de document se ferait de façon plus simple dans Word en publipostage mais, si c'est projetable, c'est moins adaptée à a projection...
 

oz2007

XLDnaute Junior
Re : exporter automatiquement vers PPT un formulaire excel

ouioui je t'avoue que 200 slides qui s'enchainent ça va pas être l'éclate!!

Sinon je crée une macro qui me fait mes 200 tableaux et après je pourrai les copier dans PPT...Donc en gros je dois rédiger une macro qui copie mon tableau source, qui fasse des copier coller des lignes qui vont bien dans les cellules qui vont bien... enfin c'est la meilleure solution que je vois pour voir mes tableaux dynamiques dans PPT

Cela vous semble-t'il faisable?
 

chris

XLDnaute Barbatruc
Re : exporter automatiquement vers PPT un formulaire excel

Re

Tu n'as pas répondu sur le point essentiel : envisages-tu 200 onglets dans ton classeur en liaison avec ton PPT ?
Si oui on peut t'aider pour le code qui devra accomplir les étapes suivantes :
  1. vérifier le nombre de lignes et le nombres d'onglets
  2. si pas d'autres onglets que la liste et le 1er onglet servant de modèle, portant comme nom le numéro de ligne (2) ou l'incluant sinon continuant la séquence et des formules utilisant ce numéro
  3. Boucle dupliquant l'onglet modèle et le nommant selon le numéro de ligne traitée
  4. Ouverture de la présentation.
  5. Gestion des liaisons le cas échéant
  6. Vérification du nombre de slides qui doit correspondre au nombre d'onglets tableaux avant le le 3.
  7. Boucle d'ajout de slide et copie/collage spécial avec liaison de chaque onglet ajouter en 3.
En espérant que ton PC ait assez de mémoire pour gérer le classeur de 200 onglets et la présentation de 200 slides...
 

oz2007

XLDnaute Junior
Re : exporter automatiquement vers PPT un formulaire excel

Hello finalement pas besoin d'avoir de liens dans mon PPT vers Excel. Donc en gros il faut que je puis compléter mon tableau source avec chaque ligne (1 tableau = 1 ligne) puis exporter tout vers PPT mais ss lien
 

oz2007

XLDnaute Junior
Re : exporter automatiquement vers PPT un formulaire excel

Voila j'ai réussi à faire ce que je voulais. J'ai donc crée un tableau (dans onglet "avec ppt") avec une toupie et des rechechev et la macro ci-dessous exporte ce tableau dans un ppt (crée une slide à la fin et copie colle).

Ma question, est-il possible de créer une ligne de code qui cliquerait automatiquement sur ma toupie, exécuterait ma macro et recliquerait sur ma toupie... jusqu'à la fin des lignes (sinon j'ai trouvé la solution de free mouse auto clicker mais bon l'idéale serait qu'avec un seul clic tout soit exporté vers mon ppt)... merci d'avance!!


Private Sub SpinButton1_Change()


Dim PPApp As PowerPoint.Application
Dim PPPres As PowerPoint.Presentation
Dim PPSlide As PowerPoint.Slide
Dim PPTTemp As Object


Set PPTTemp = GetObject(, "Excel.Application")
If Err.Number <> 0 Then PowerpointWasNotRunning = True
Err.Clear

' DetectExcel



PPTTemp.Application.Visible = True

If ExcelWasNotRunning = True Then
PPTTemp.Application.Quit
End If

' Reference instance of PowerPoint
On Error Resume Next

' Check whether PowerPoint is running
Set PPApp = GetObject(, "PowerPoint.Application")
If PPApp Is Nothing Then
' PowerPoint is not running, create new instance
Set PPApp = CreateObject("PowerPoint.Application")
PPApp.Visible = True
End If
On Error GoTo 0

' Reference presentation and slide
On Error Resume Next
If PPApp.Windows.Count > 0 Then
' There is at least one presentation
' Use existing presentation
Set PPPres = PPApp.ActivePresentation
' Use active slide
Set PPSlide = PPPres.Slides _
(PPApp.ActiveWindow.Selection.SlideRange.SlideIndex)
Else
' There are no presentations
' Create new presentation
Set PPPres = PPApp.Presentations.Add
' Add first slide
'Set PPSlide = PPPres.Slides.Add(1, ppLayoutBlank)
End If
On Error GoTo 0

' Some PowerPoint actions work best in normal slide view
PPApp.ActiveWindow.ViewType = ppViewSlide

'Add a new slide and paste in the chart
SlideCount = PPPres.Slides.Count
Set PPSlide = PPPres.Slides.Add(SlideCount + 1, ppLayoutBlank)
PPApp.ActiveWindow.View.GotoSlide PPSlide.SlideIndex



Worksheets("AVEC PPT").Range("A1:G21").CopyPicture _
Appearance:=xlScreen, Format:=xlPicture

' Paste chart
PPSlide.Shapes.Paste.Select

' Align pasted chart
PPApp.ActiveWindow.Selection.ShapeRange.Left = 10
PPApp.ActiveWindow.Selection.ShapeRange.Top = 60
PPApp.ActiveWindow.Selection.ShapeRange.Width = 700



' Clean up
Set PPSlide = Nothing
Set PPPres = Nothing
Set PPApp = Nothing




End Sub
 

chris

XLDnaute Barbatruc
Re : exporter automatiquement vers PPT un formulaire excel

Bonjour

Oui cela s'appelle une boucle : il remplacer le nom Private Sub SpinButton1_Change() par un nom plus classique (la toupie pourra être supprimée)

Ensuite :

Si tu as fait une toupie j'imagine que tu as un minimum = 2 et un maximum = à la position de ta dernière ligne (mettons 225 pour l'exemple) et une cellule associée à cette toupie utilisée par les RECHERCHEV.
Sinon précise ce qui change avec la toupie.

Mettons que ce soit la cellule F1

Tu mets avant la partie de ton code
Code:
'Add a new slide and paste in the chart
    SlideCount = PPPres.Slides.Count
Code:
For i=2 to 225
   Worksheets("AVEC PPT").Range("F1").Formula=i

et après la ligne
Code:
PPApp.ActiveWindow.Selection.ShapeRange.Width = 700
Next i
 

oz2007

XLDnaute Junior
Re : exporter automatiquement vers PPT un formulaire excel

Hello ça fonctionne parfaitement merci. Une dernière petite question car je n'arrive pas à trouver comment faire. Au lieu d'indiquer un chiffre dans le code
For i = 1 To 200
j'aimerai indiquer la dernière ligne du tableau de l'onglet "données" (pour info ma bdd est dans données et mon tableau que j'exporte dans ppt est dans l'onglet "export automatique"). Merci encore pour ton aide :eek:

Sub Macroautomatique()
'
' Macrotest Macro
'
Dim PPApp As PowerPoint.Application
Dim PPPres As PowerPoint.Presentation
Dim PPSlide As PowerPoint.Slide
Dim PPTTemp As Object


Set PPTTemp = GetObject(, "Excel.Application")
If Err.Number <> 0 Then PowerpointWasNotRunning = True
Err.Clear

' DetectExcel



PPTTemp.Application.Visible = True

If ExcelWasNotRunning = True Then
PPTTemp.Application.Quit
End If

' Reference instance of PowerPoint
On Error Resume Next

' Check whether PowerPoint is running
Set PPApp = GetObject(, "PowerPoint.Application")
If PPApp Is Nothing Then
' PowerPoint is not running, create new instance
Set PPApp = CreateObject("PowerPoint.Application")
PPApp.Visible = True
End If
On Error GoTo 0

' Reference presentation and slide
On Error Resume Next
If PPApp.Windows.Count > 0 Then
' There is at least one presentation
' Use existing presentation
Set PPPres = PPApp.ActivePresentation
' Use active slide
Set PPSlide = PPPres.Slides _
(PPApp.ActiveWindow.Selection.SlideRange.SlideIndex)
Else
' There are no presentations
' Create new presentation
Set PPPres = PPApp.Presentations.Add
' Add first slide
'Set PPSlide = PPPres.Slides.Add(1, ppLayoutBlank)
End If
On Error GoTo 0



For i = 1 To 200
Worksheets("Export Automatique").Range("I2").Formula = i



'Add a new slide and paste in the chart
SlideCount = PPPres.Slides.Count



Set PPSlide = PPPres.Slides.Add(SlideCount + 1, ppLayoutBlank)
PPApp.ActiveWindow.View.GotoSlide PPSlide.SlideIndex



Worksheets("Export Automatique").Range("A1:G21").CopyPicture _
Appearance:=xlScreen, Format:=xlPicture

' Paste chart
PPSlide.Shapes.Paste.Select

' Align pasted chart
PPApp.ActiveWindow.Selection.ShapeRange.Left = 10
PPApp.ActiveWindow.Selection.ShapeRange.Top = 60
PPApp.ActiveWindow.Selection.ShapeRange.Width = 700

Next i



' Clean up
Set PPSlide = Nothing
Set PPPres = Nothing
Set PPApp = Nothing




End Sub
 

Discussions similaires

Réponses
18
Affichages
799
Réponses
17
Affichages
827