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

Il faut se baser sur une colonne sans trou de ta liste, mettons B

Code:
Dim Derlig as long
Derlig=Worksheets("données").Range("B" & Cells.Rows.Count).End(xlUp).Row)
For i=2 to Derlig

Ta base doit avoir des titres et le 1er enregistrement à traiter sur la ligne 2 je pense, mais après cela dépend comment tu as fait tes formules...
 

oz2007

XLDnaute Junior
Re : exporter automatiquement vers PPT un formulaire excel

Bonjour,
Je réouvre cette conversation car la demande à un peu changé. Je dois faire exactement la même manip mais sur Word et non sur pot. Je ne sais pas si je peux adapter mon ancienne macro ou si je dois partir de zéro. Qu'en pensez vous? J'ai essayé d'adapter la macro mais j'ai vite bloque. Merci d'avance
 

chris

XLDnaute Barbatruc
Re : exporter automatiquement vers PPT un formulaire excel

Bonjour

La logique est sensiblement la même mais au leu d'insérer des slides il faut insérer des sauts de pages entre chaque image ou, si 2 tiennent sur une page, toutes les deux images, mais aussi insérer, je pense, un saut de ligne après chaque image...

Fais la manip à la main sur 2 ou 3 images pour voir ce que ça donne avant de coder...

La placement de l'image est plutôt défini par les marges et les propriétés du paragraphe. Le collage se fait naturellement au point d'insertion.

Éviter les objets flottants, c'est ingérable.
 

oz2007

XLDnaute Junior
Re : exporter automatiquement vers PPT un formulaire excel

Hello chris,

Merci pour ta réponse, cela me permet de savoir dans quelle direction je dois aller. J'ai tenté cette macro mais ça plante à plusieurs endroit:

Sub Macromanuelle()



'
' Macro1 Macro
'



Dim oWdApp As Word.Application
Dim oWdDoc As Word.Document
Dim objWord As Object

Set objWord = GetObject(, "Word.Application")
If Err.Number <> 0 Then WordWasNotRunning = True
Err.Clear

' Detectword



objWord.Application.Visible = True

If WordWasNotRunning = True Then
objWord.Application.Quit
End If

' Reference instance of PowerPoint
On Error Resume Next

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

' Reference presentation and slide
On Error Resume Next
If oWdApp.Windows.Count > 0 Then
' There is at least one presentation
' Use existing presentation
Set oWdDoc = oWdApp.ActiveWorkbook
' Use active slide
Set oWdApp = CreateObject("Word.Application")

Else
' There are no presentations
' Create new presentation
Set oWdDoc = oWdApp.Documents.Add
' Add first slide
'Set PPSlide = oWdDoc.Slides.Add(1, ppLayoutBlank)
End If
On Error GoTo 0



'Add a new slide and paste in the chart

If oWdApp.Selection.PageSetup.Orientation = wdOrientPortrait Then
oWdApp.Selection.PageSetup.Orientation = wdOrientLandscape
Else
oWdApp.Selection.PageSetup.Orientation = wdOrientPortrait
End If


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

' Paste chart
PPSlide.Shapes.Paste.Select

' Align pasted chart
DocWord.Range.PasteSpecial
Application.CutCopyMode = False
oWdApp.ActiveWindow.ActivePane.VerticalPercentScrolled = 0

objWord.Selection.InsertBreak Type:=7




End Sub

Aurais tu une idée des modifs à apporter? Merci d'avance
oz2007
 

oz2007

XLDnaute Junior
Re : exporter automatiquement vers PPT un formulaire excel

Bon j'ai simplifié la macro:

Sub ExportWordPDF()

Dim wdApp As Object
Dim wd As Object


On Error Resume Next
Set wdApp = GetObject(, "Word.Application")
If Err.Number <> 0 Then
Set wdApp = CreateObject("Word.Application")
End If
On Error GoTo 0

Set wd = wdApp.Documents.Open("C:\frame.doc")

wdApp.Visible = True

Range("A1:T43").CopyPicture , xlBitmap
wd.Range.Paste [/B]

Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
Selection.InsertBreak Type:=wdPageBreak



Set wdApp = Nothing
Set wd = Nothing



End Sub

Cependant cela plante au niveau:

Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
Selection.InsertBreak Type:=wdPageBreak

Je ne comprend pas pourquoi car je l'ai fait avec l'enregistreur de macro de word.
 

oz2007

XLDnaute Junior
Re : exporter automatiquement vers PPT un formulaire excel

Ok merci j'ai réussi à faire ce que je voulais avec la macro suivante:
La dernière chose que je souhaiterai faire est de redimensionner l'image collée à la taille de la page (il faut donc pouvoir sélectionner l'image copié puis la redimensionné). Aurais tu une idée?

Sub ExportWordPDF()

Dim wdApp As Object
Dim wd As Object


On Error Resume Next
Set wdApp = GetObject(, "Word.Application")
If Err.Number <> 0 Then
Set wdApp = CreateObject("Word.Application")
End If
On Error GoTo 0



wdApp.Visible = True
Set wd = wdApp.Documents.Open(ThisWorkbook.Path & Application.PathSeparator & "OSS_Axe2 Capi Services Existants_catalogue_v01.doc")


Range("A1:T43").CopyPicture , xlBitmap
wdApp.Selection.Paste


wdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
wdApp.Selection.MoveRight Unit:=wdCharacter, Count:=1
wdApp.Selection.TypeParagraph



Set wdApp = Nothing
Set wd = Nothing



End Sub
 

Discussions similaires

Réponses
18
Affichages
759
Réponses
17
Affichages
790

Statistiques des forums

Discussions
312 498
Messages
2 088 996
Membres
104 001
dernier inscrit
dessinbecm