Avatar billede pawll Nybegynder
06. december 2007 - 14:01 Der er 4 kommentarer og
1 løsning

Kan man lave en makro der kopiere fra Excel til Powerpoint?

Hejsa,

Er det muligt at lave en makro i enten excel eller powerpoint der kopiere ca. 50 grafer fra excel ind i specifikke ark i powerpoint?

Jeg ved det ikke, så satser på en ekspert har svaret på om det muligt, og hvordan :)

På forhånd tak.
Avatar billede supertekst Ekspert
06. december 2007 - 14:09 #1
Ja - det kan man godt.
Koden er nogle år gl. - skal se om jeg kan finde den.
Avatar billede pawll Nybegynder
06. december 2007 - 14:21 #2
wow... du er godt informeret inden for makro og VB ;)
Avatar billede supertekst Ekspert
07. december 2007 - 00:26 #3
Eksempel - hvor et diagram overføres til PPT:

PPT-filen er oprettet i samme mappe som XLS-filen ("diagram.ppt")
NB: sti-angivelsen <---tilpasses

Endvidere skal der tilføjes en reference i XLS-VBA : Microsoft PowerPoint - findes i VBA-vinduet under menupunktet Tools | References - sæt flueben udfor Micrs.PPT

Kode ligger i regnearket:

Const sti = "C:\Documents and Settings\pb\Skrivebord\0612XLS_PPT\" '<---- tilpasses
Dim pp
Private Sub Begynd()
    Set pp = CreateObject("PowerPoint.application")
    pp.Visible = True
   
Rem Åbne for redigering
    With pp.Presentations
        .Open Filename:=sti + "diagram.ppt"
    End With

    Lav_diagram
   
    ActiveChart.ChartArea.Copy
   
Rem Indsæt diagram
    With pp
        .ActiveWindow.View.GotoSlide Index:=1
        .ActiveWindow.ViewType = ppViewSlide
       
        .ActiveWindow.View.Paste
    End With
'      .ActiveWindow.View.PasteSpecial Link:=False, DataType:=wdPasteMetafilePicture, Placement:= _
'      wdFloatOverText, DisplayAsIcon:=False
   
    pp.ActivePresentation.Save
    pp.ActivePresentation.Close

    Set pp = Nothing
End Sub
Sub Lav_diagram()
    Range("B3:E4").Select
    Charts.Add
    ActiveChart.ChartType = xlBarClustered
    ActiveChart.SetSourceData Source:=Sheets("Ark2").Range("B3:E4"), PlotBy:= _
        xlRows
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Ark2"
    With ActiveChart.Axes(xlCategory)
        .HasMajorGridlines = False
        .HasMinorGridlines = False
    End With
    With ActiveChart.Axes(xlValue)
        .HasMajorGridlines = False
        .HasMinorGridlines = False
    End With
    ActiveChart.HasLegend = False
    ActiveChart.Axes(xlValue).Select
    ActiveChart.ChartArea.Select
    ActiveSheet.Shapes(1).IncrementLeft 173.25
    ActiveSheet.Shapes(1).IncrementTop -81#
End Sub
Avatar billede pawll Nybegynder
31. januar 2008 - 13:23 #4
Vil du ikke lave et hurtigt svar så jeg kan give dig nogle point :)

Har først fået tjekket op på det nu.

//Paw
Avatar billede supertekst Ekspert
31. januar 2008 - 13:43 #5
jo da - OK.........
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