Avatar billede denero Juniormester
05. december 2008 - 13:17 Der er 10 kommentarer og
1 løsning

Data fra Excel til dias i PowerPoint

Flg kode er fundet på nettet, men den giver en fejl
"ActiveX component can`t create objekt" i nedenstående
Set PPApp = GetObject(, "Powerpoint.Application")

og her er hele koden:

Sub RangeToPresentation()

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

If Not TypeName(Selection) = "Range" Then
    MsgBox "Please select a worksheet range and try again.", vbExclamation, _
        "No Range Selected"
Else
   
    Set PPApp = GetObject(, "Powerpoint.Application")
    Set PPPres = PPApp.ActivePresentation
    PPApp.ActiveWindow.ViewType = ppViewSlide
    Set PPSlide = PPPres.Slides(PPApp.ActiveWindow.Selection.SlideRange.SlideIndex)
   
    Selection.CopyPicture Appearance:=xlScreen, _
        Format:=xlPicture

    PPSlide.Shapes.Paste.Select
    PPApp.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
    PPApp.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True
    Set PPSlide = Nothing
    Set PPPres = Nothing
    Set PPApp = Nothing
End If

End Sub


Hvad gør jeg?
Avatar billede denero Juniormester
05. december 2008 - 13:24 #1
Øv - 30 point er vist lige i underkanten, men jeg glemte at skrive 100 point, som vist bedre svarer til spørgsmålet.
Avatar billede nemlig Professor
05. december 2008 - 14:02 #2
Du kan bare tildele flere point ved at vælge "Funktioner" i menubaren til venstre.
Jeg kan dog ikke svare på dit spørgsmål.
Avatar billede jkrons Professor
05. december 2008 - 14:03 #3
PowerPoint skal være åben før det virker.
Avatar billede jkrons Professor
05. december 2008 - 14:27 #4
Vil du starte din makro uden at PP er åben, så prøv med

Sub RangeToPresentation()

Dim PPApp As PowerPoint.Application
Dim PPTPres As PowerPoint.Presentation
Dim PPTSlide As PowerPoint.Slide

If Not TypeName(Selection) = "Range" Then
    MsgBox "Please select a worksheet range and try again.", vbExclamation, _
        "No Range Selected"
Else
   
    Set PPApp = CreateObject("Powerpoint.Application")
    Set PPTPres = PPApp.Presentations.Add
    PPApp.Visible = True
    PPApp.ActiveWindow.ViewType = ppViewSlide
   
    With PPTPres.Slides
    Set PPTSlide = .Add(.Count + 1, ppLayoutText)
    End With
    Set PPTSlide = PPTPres.Slides(PPApp.ActiveWindow.Selection.SlideRange.SlideIndex)
    Selection.CopyPicture Appearance:=xlScreen, _
        Format:=xlPicture

    PPTSlide.Shapes.Paste.Select
    PPApp.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
    PPApp.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True
    Set PPTSlide = Nothing
    Set PPTPres = Nothing
    Set PPApp = Nothing
End If

End Sub
Avatar billede denero Juniormester
05. december 2008 - 14:53 #5
nemlig - er gjort.
jkrons - flg fejl opstår i linjen: Dim PPApp As PowerPoint.Application

Compile error:user-defined type not defined
Avatar billede jkrons Professor
05. december 2008 - 15:17 #6
Har du husket at sætte en reference til Mixrosoft PowerPoint under Tools- References i VBA Editoren+
Avatar billede denero Juniormester
05. december 2008 - 16:31 #7
Det troede jeg var i orden, men det er det nu og det virker. Hvis jeg nu vil gå ind i en eksisterende dias-skablon og indsætte mit range fra excel, hvordan får jeg så det il at passe hver gang - det "rager udenfor". Skal det laves om til billede og skal jeg have en "billedramme" i min skabelon. Navn på skabelon "Min skabelon"
Avatar billede jkrons Professor
05. december 2008 - 17:13 #8
Jeg er ikek sikker på, om du kan få det til at "passe" hver gang. Størrelsen vil afhænge af det kopierede område, og det er muligtat du kan bestemme størrelsen på den relevante Shape i PP, men jeg kan ikke lige umiddelbart se hvordan, og har desværre ikek så meget tid til at eksperimentere.
Avatar billede denero Juniormester
07. december 2008 - 11:28 #9
Jeg retter den til i excel og det funker. Tak for hjælpen.Vil du ligge et svar ikrons? Tilbage er der blot det, at jeg gerne vil bruge en skabelon. dot, som skal indsættes i stedet for nyt doc (koden). Er det muligt. Hvis du ikke har tid vil jeg oprette et nyt spørgsmål - her er koden:

Sub Dias()
'
' Range
'
    Application.Goto Reference:="Område i Excel"
'
' KopierTilBillede
'
    Selection.CopyPicture _
    Appearance:=xlScreen, Format:=xlPicture
    Application.Goto Reference:="Område i Excel - lavet om til billede"
    ActiveSheet.Paste
'
' Billedstørrelse
'
    Selection.ShapeRange.LockAspectRatio = msoTrue
    Selection.ShapeRange.Height = 363.75
    Selection.ShapeRange.Width = 682.5
    Selection.ShapeRange.Rotation = 0#
    Selection.Copy
'
' OpretDias
'
Dim PPApp As PowerPoint.Application
Dim PPTPres As PowerPoint.Presentation
Dim PPTSlide As PowerPoint.Slide

    Set PPApp = CreateObject("Powerpoint.Application")
    Set PPTPres = PPApp.Presentations.Add
    PPApp.Visible = True
    PPApp.ActiveWindow.ViewType = ppViewSlide
   
    With PPTPres.Slides
    Set PPTSlide = .Add(.Count + 1, ppLayoutText)
    End With
    Set PPTSlide = PPTPres.Slides(PPApp.ActiveWindow.Selection.SlideRange.SlideIndex)
    Selection.CopyPicture Appearance:=xlScreen, _
        Format:=xlPicture

    PPApp.ActiveWindow.Selection.SlideRange.Shapes("Rectangle 3").Select
    PPApp.ActiveWindow.View.Paste

    Set PPTSlide = Nothing
    Set PPTPres = Nothing
    Set PPApp = Nothing
    Selection.Delete 'Område i Excel - lavet om til billede, fernes'
End Sub
Avatar billede jkrons Professor
07. december 2008 - 15:30 #10
Jeg er desbværre på kursus hele næste uge, så der kommer det til at knibe med tiden.
Avatar billede denero Juniormester
07. december 2008 - 18:01 #11
Ok - jeg opretter det sidste som nyt spørgsmål.Fernes=fjernes.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester