Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
jonnathanr
Contributor III
Contributor III

Criar uma apresentação powerpoint

Boa tarde amigos,

Estou travado em um probleminha aqui, que pode ser simples...

Preciso gerar uma apresentação com imagens da minha dashboard (qlikview).

A cada seleção que eu fizer, preciso gerar um novo slide na apresentação, com a imagem da dashboard!

Tenho um script aqui que faz isso, mas ele cria uma apresentação nova pra cada seleção. A ideia seria usar esse script pra criar a apresentação, na primeira seleção que eu fizer, porém, nas próximas seleções, tenho que modificar o scrpit para apenas adicionar slides novos na apresentação já criada.

Alguem pode me ajudar?

O script que cria a apresentação com a imagem é o seguinte:

Sub ExportPPT

ActiveDocument.ActiveSheet.FitZoomToWindow

Set objPPT = CreateObject("PowerPoint.Application")

objPPT.Visible = True

Set objPresentation = objPPT.Presentations.Add

    For i = 0 To ActiveDocument.NoOfSheets - 1

        Set MySheet = ActiveDocument.GetSheet(i)

        Set PPSlide = objPresentation.Slides.Add(1,11)

        ActiveDocument.ActiveSheet.CopyBitmapToClipboard

        PPSlide.Shapes.Paste

        set mysheet=ActiveDocument.ActiveSheet

        set MySheetProp=mysheet.GetProperties

        MySheetProp.ZoomFactor = 1

        mysheet.SetProperties MySheetProp

    Next

Set PPSlide = Nothing

Set PPPres = Nothing

End sub

1 Solution

Accepted Solutions
jonnathanr
Contributor III
Contributor III
Author

Caro Pericles

Segue os codigos

O primeiro (CreatePPT) cria a apresentação e já salva o primeiro slide

O segundo (ExportPPT) carrega a apresentação criada acima e salva um segundo slide

sub CreatePPT

Set objPPT = CreateObject("PowerPoint.Application")

objPPT.Visible = True

Set objPresentation = objPPT.Presentations.Add

Set PPSlide = objPresentation.Slides.Add(1,11)

Application.WaitForIdle

ActiveDocument.ActiveSheet.CopyBitmapToClipboard

PPSlide.Shapes.Paste

Set PPSlide = Nothing

Set PPPres = Nothing

Set PPApp = Nothing

objPresentation.SaveAs("C:\Local_do_Arquivo.ppt")

objPresentation.Close

objPPT.Quit

End Sub

sub ExportPPT

Set objPPT = CreateObject("PowerPoint.Application")

objPPT.Visible = True

Set objPresentation = objPPT.Presentations.Open("C:\Local_do_Arquivo.ppt")

Set PPSlide = objPresentation.Slides.Add(objPresentation.Slides.Count + 1,11)

Application.WaitForIdle

ActiveDocument.ActiveSheet.CopyBitmapToClipboard

PPSlide.Shapes.Paste

Set PPSlide = Nothing

Set PPPres = Nothing

Set PPApp = Nothing

objPresentation.SaveAs("C:\Local_do_Arquivo.ppt")

objPresentation.Close

objPPT.Quit

End Sub

View solution in original post

5 Replies
matzenbacher
Creator II
Creator II

Teria como mandar o .qvw para darmos uma olhada?

flw

jonnathanr
Contributor III
Contributor III
Author

Cara, consegui resolver o problema

Era só fazer algumas alterações no código =]

Valeeu!

pericles_silva
Contributor III
Contributor III

Jonnathanr, poderia postar esse código pra comunidade?

abç

jonnathanr
Contributor III
Contributor III
Author

Caro Pericles

Segue os codigos

O primeiro (CreatePPT) cria a apresentação e já salva o primeiro slide

O segundo (ExportPPT) carrega a apresentação criada acima e salva um segundo slide

sub CreatePPT

Set objPPT = CreateObject("PowerPoint.Application")

objPPT.Visible = True

Set objPresentation = objPPT.Presentations.Add

Set PPSlide = objPresentation.Slides.Add(1,11)

Application.WaitForIdle

ActiveDocument.ActiveSheet.CopyBitmapToClipboard

PPSlide.Shapes.Paste

Set PPSlide = Nothing

Set PPPres = Nothing

Set PPApp = Nothing

objPresentation.SaveAs("C:\Local_do_Arquivo.ppt")

objPresentation.Close

objPPT.Quit

End Sub

sub ExportPPT

Set objPPT = CreateObject("PowerPoint.Application")

objPPT.Visible = True

Set objPresentation = objPPT.Presentations.Open("C:\Local_do_Arquivo.ppt")

Set PPSlide = objPresentation.Slides.Add(objPresentation.Slides.Count + 1,11)

Application.WaitForIdle

ActiveDocument.ActiveSheet.CopyBitmapToClipboard

PPSlide.Shapes.Paste

Set PPSlide = Nothing

Set PPPres = Nothing

Set PPApp = Nothing

objPresentation.SaveAs("C:\Local_do_Arquivo.ppt")

objPresentation.Close

objPPT.Quit

End Sub

pericles_silva
Contributor III
Contributor III

Jonnathanr, sinceramente nunca usei Macros no QlikView. Essa solução é muito interessante, e várias pessoas por aqui já procuraram essa solução.

Teria como você, com tempo, criar um tipo de tutorial de como aplicar isso no QlikView?

Eu não consigo instanciar o "PowerPoint.Application" pois meu Office é o antigo 2000, mas testarei na maquina de um amigo, que tem o Office 2010. É bom citar também essas coisas de versão, pois se eu não me engano, o PowerPoint.Application só funciona para versões a partir do Office 2007.

Obg.