none
Gerar PowerPoint automaticamente via Planilha Excel

    Question

  • Caros,
    Tenho a seguinte situação:
    1 planilha excel com dezenas de gráficos, que é gerada mensalmente via um sistema java.

    A partir desta planilha preciso gerar um .doc e um .ppt, isto atualmente é feito manualmente, o que eu gostaria é de automatizar estas tarefas, ou seja, a partir do excel gerar o .ppt e o doc.

    Alguem tem alguma idéia da melhor forma de solucionar este problema?
    Atualmente estamos utilizando o MS-Office 2003

    obrigado!
    Friday, February 16, 2007 5:09 PM

Answers

  • Caro Cesar,

    Para que vc possa fazer isso automaticamente vc precisa seguir os procedimentos abaixo:

    1. Abrir a planilha que contém os gráficos, Abrir o documento do Word que irá receber os gráficos e Abrir a apresentação do Powerpoint que receberá também os gráficos.

    Se o gráfico estiver como uma planilha de Grafico: ex: Graf1 ....Clique na planilha que contém esse gráfico e dê o comando copiar.

    Vá para o Word e acione o Menu Editar .....Colar Especial .....Colar Vínculo .....e Gráfico do Excel.

    Vá para O Powerpoint e acione o Menu Editar ...Colar especial.....Colar Vínculo.....Objeto Gráfico do excel.

    Pronto agora e só salvar o arquivo do Word, PowerPoint e Excell.

    Quando vc alterar os dados no excel para gerar novos gráficos, e só abrir o arquivo do Word e Powerpoint que contém os objetos incorporados que ele irá perguntar se vc deseja atualizar os dados, e vc dirá que sim pronto vc estara com o documento do Word e do Powerpoint sempre atualizados de acordo com os últimos graficos,

     

    Obs. Faça esse procedimento para cada gráfico que vc quiser incorporar no Word e Power.

     

    []s

     

    Souzac

     

     

     

     

     

    Friday, March 02, 2007 3:07 AM
  • Ola Souza,

    Obrigado pela sua atenção, mas o que procuro é automatizar o processo, não quero clicar em copiar e colar.

    Já consegui automatizar o ppt, estou atrás agora da forma de automatizar a geração do .doc.

     

    Veja código para automatizar o envio de gráficos para um .ppt:

     

    Private Sub PushAllExcelPlotsToPowerPoint()


    '**********************************************************************************
    ' This procedure pushes all Excel charts in the active workbook to
    PowerPoint slides
    ' * If a PowerPoint presentation is not open, PowerPoint will be
    launched (if
    ' necessary), a new Powerpoint presentation will be created, and the
    slides
    ' will be added with all of the Excel charts.
    ' * If PowerPoint is already open, the Excel charts will be appended to
    the
    ' active PowerPoint presentation.
    ' * Chart names will be used for slide titles.

    '**********************************************************************************

    Dim PowerPointConn As Object
    Dim CurrentChart As Excel.Chart
    Dim SlideNumber As Integer, INI_File As String

    If ActiveChart Is Nothing Then End

    ' determine if custom or default INI file should be used
    INI_File = IniFileName

    On Error Resume Next
    Set PowerPointConn = GetObject(, "PowerPoint.Application")
    On Error GoTo 0
    If PowerPointConn Is Nothing Then Set PowerPointConn =
    CreateObject("PowerPoint.Application")
    If PowerPointConn.Presentations.Count = 0 Then
    PowerPointConn.Presentations.Add msoTrue
    PowerPointConn.Visible = msoTrue

    SlideNumber = PowerPointConn.ActivePresentation.Slides.Count + 1

    For Each CurrentChart In Charts
    CurrentChart.CopyPicture
    PowerPointConn.ActivePresentation.Slides.Add Index:=SlideNumber,
    Layout:=11 ' ppLayoutTitleOnly = 11
    PowerPointConn.ActivePresentation.Slides(SlideNumber).Shapes.Paste

    PowerPointConn.ActivePresentation.Slides(SlideNumber).Shapes(1).TextFrame.TextRange.Text = CurrentChart.Name

    PowerPointConn.ActivePresentation.Slides(SlideNumber).Shapes(2).Height =
    Val(GetPrivateProfileString32(INI_File, "GENERAL", "PPT Plot Height", "385"))
    PowerPointConn.ActivePresentation.Slides(SlideNumber).Shapes(2).Top
    = Val(GetPrivateProfileString32(INI_File, "GENERAL", "PPT Plot Top", "115"))
    PowerPointConn.ActivePresentation.Slides(SlideNumber).Shapes(2).Left
    = Val(GetPrivateProfileString32(INI_File, "GENERAL", "PPT Plot Left", "85"))
    SlideNumber = SlideNumber + 1
    Next CurrentChart

    Set PowerPointConn = Nothing

    End Sub

    Friday, March 02, 2007 12:19 PM
  • Oi Cesar,

     

    este tópico deveria ser postado no MSDN Brasil, lá conseguirá mais rapidamente respostas sobre desenvolvimento e VBA.

    A lógica do código a ser usado é a mesma, porém você deverá recorrer ao modelo de objeto do Word:

     

    Dim WordApp As Object

    Dim wdDoc As Object

    Set WordApp = CreateObject("Word.Application")

    Set wdDoc = WordApp.Documents.Add

    WordApp.Visible=true

    ' o resto é copiar e colar, como fez no código do PowerPoint

    Saturday, March 03, 2007 12:28 PM
    Moderator

All replies

  • Caro Cesar,

    Para que vc possa fazer isso automaticamente vc precisa seguir os procedimentos abaixo:

    1. Abrir a planilha que contém os gráficos, Abrir o documento do Word que irá receber os gráficos e Abrir a apresentação do Powerpoint que receberá também os gráficos.

    Se o gráfico estiver como uma planilha de Grafico: ex: Graf1 ....Clique na planilha que contém esse gráfico e dê o comando copiar.

    Vá para o Word e acione o Menu Editar .....Colar Especial .....Colar Vínculo .....e Gráfico do Excel.

    Vá para O Powerpoint e acione o Menu Editar ...Colar especial.....Colar Vínculo.....Objeto Gráfico do excel.

    Pronto agora e só salvar o arquivo do Word, PowerPoint e Excell.

    Quando vc alterar os dados no excel para gerar novos gráficos, e só abrir o arquivo do Word e Powerpoint que contém os objetos incorporados que ele irá perguntar se vc deseja atualizar os dados, e vc dirá que sim pronto vc estara com o documento do Word e do Powerpoint sempre atualizados de acordo com os últimos graficos,

     

    Obs. Faça esse procedimento para cada gráfico que vc quiser incorporar no Word e Power.

     

    []s

     

    Souzac

     

     

     

     

     

    Friday, March 02, 2007 3:07 AM
  • Ola Souza,

    Obrigado pela sua atenção, mas o que procuro é automatizar o processo, não quero clicar em copiar e colar.

    Já consegui automatizar o ppt, estou atrás agora da forma de automatizar a geração do .doc.

     

    Veja código para automatizar o envio de gráficos para um .ppt:

     

    Private Sub PushAllExcelPlotsToPowerPoint()


    '**********************************************************************************
    ' This procedure pushes all Excel charts in the active workbook to
    PowerPoint slides
    ' * If a PowerPoint presentation is not open, PowerPoint will be
    launched (if
    ' necessary), a new Powerpoint presentation will be created, and the
    slides
    ' will be added with all of the Excel charts.
    ' * If PowerPoint is already open, the Excel charts will be appended to
    the
    ' active PowerPoint presentation.
    ' * Chart names will be used for slide titles.

    '**********************************************************************************

    Dim PowerPointConn As Object
    Dim CurrentChart As Excel.Chart
    Dim SlideNumber As Integer, INI_File As String

    If ActiveChart Is Nothing Then End

    ' determine if custom or default INI file should be used
    INI_File = IniFileName

    On Error Resume Next
    Set PowerPointConn = GetObject(, "PowerPoint.Application")
    On Error GoTo 0
    If PowerPointConn Is Nothing Then Set PowerPointConn =
    CreateObject("PowerPoint.Application")
    If PowerPointConn.Presentations.Count = 0 Then
    PowerPointConn.Presentations.Add msoTrue
    PowerPointConn.Visible = msoTrue

    SlideNumber = PowerPointConn.ActivePresentation.Slides.Count + 1

    For Each CurrentChart In Charts
    CurrentChart.CopyPicture
    PowerPointConn.ActivePresentation.Slides.Add Index:=SlideNumber,
    Layout:=11 ' ppLayoutTitleOnly = 11
    PowerPointConn.ActivePresentation.Slides(SlideNumber).Shapes.Paste

    PowerPointConn.ActivePresentation.Slides(SlideNumber).Shapes(1).TextFrame.TextRange.Text = CurrentChart.Name

    PowerPointConn.ActivePresentation.Slides(SlideNumber).Shapes(2).Height =
    Val(GetPrivateProfileString32(INI_File, "GENERAL", "PPT Plot Height", "385"))
    PowerPointConn.ActivePresentation.Slides(SlideNumber).Shapes(2).Top
    = Val(GetPrivateProfileString32(INI_File, "GENERAL", "PPT Plot Top", "115"))
    PowerPointConn.ActivePresentation.Slides(SlideNumber).Shapes(2).Left
    = Val(GetPrivateProfileString32(INI_File, "GENERAL", "PPT Plot Left", "85"))
    SlideNumber = SlideNumber + 1
    Next CurrentChart

    Set PowerPointConn = Nothing

    End Sub

    Friday, March 02, 2007 12:19 PM
  • Olá Cesar, então tem que ser msm via VBA, automatizando assim todo o processo, eu estava pensando que os gráficos seriam sempre os mesmos mas com valores diferentes no final de cada mes.

    []s

    Friday, March 02, 2007 10:54 PM
  • Oi Cesar,

     

    este tópico deveria ser postado no MSDN Brasil, lá conseguirá mais rapidamente respostas sobre desenvolvimento e VBA.

    A lógica do código a ser usado é a mesma, porém você deverá recorrer ao modelo de objeto do Word:

     

    Dim WordApp As Object

    Dim wdDoc As Object

    Set WordApp = CreateObject("Word.Application")

    Set wdDoc = WordApp.Documents.Add

    WordApp.Visible=true

    ' o resto é copiar e colar, como fez no código do PowerPoint

    Saturday, March 03, 2007 12:28 PM
    Moderator
  • Este post nao obteve uma solução exata, estou encerrando este post mesmo que seja antigo por questão de organização, selecionando a resposta que mais se aproxima da solução.

    Se houver duvidas sobre este post futuramente, recomenda abrir uma nova thread com sua duvida.
    Diego Piffaretti- www.mundotecnologico.net
    Thursday, March 31, 2011 1:22 AM
    Moderator
  • Mas que dica fantástica, simples mas funcional e prática.

    Procurei códigos para criar slides automaticamente mas achei muito complicado. Por sorte, achei esse post com essa dica mágica.

    Deu trabalho para configurar tudo no Excel mas agora tenho uma base do Excel linkada no PowerPoint automaticamente.

    Muito obrigado!

    Wednesday, November 23, 2016 4:53 PM
  • Olá Souzac

    Estou com o mesmo problema, porém fiz uma macro que gera a planilha com os dados e os gráficos sem formatação (título, cores, estilos, etc) porém preciso formatá-los antes de exportar (com link) para o ppt; Montei outra macro com a formatação dos gráficos mas acusa para declarar as variaveis dos objetos antes.

    Poderia me auxiliar nessa questão. Obrigado!

    Thursday, April 27, 2017 4:43 PM
  • Olá, eu estou com o mesmo problema. Semanalmente tenho que pegar o resultado e gráfico de várias planilhas e gerar um apresentação em PowerPoint. Você poderia compartilhar a planilha? Não estou conseguindo fazer esse código funcionar, ele dá mensgem de erro em GetPrivateProfileString32.

    Obrigado!!!

    Friday, May 12, 2017 3:52 PM