Vincular a planilha do Excel à apresentação do PowerPoint

3

Eu preciso criar uma apresentação de PowerPoint semanal para vários níveis de gerenciamento, para mantê-los informados sobre o status de várias categorias de itens de ação que meu departamento controla. Durante as operações normais, a maioria desses itens de ação é rastreada por meio de diversas planilhas do Excel. Há uma planilha separada para cada categoria de item de ação.

(Sim, sei que devemos usar um aplicativo diferente e armazenar esse tipo de coisa em um banco de dados, em vez de planilhas. Isso está funcionando, mas ainda preciso de uma correção temporária para isso enquanto estamos presos no Excel .)

As planilhas usadas para rastrear os itens de ação são muito detalhadas, mas a apresentação precisa ser breve, por isso omitimos algumas das especificidades da apresentação. Abaixo estão alguns campos de exemplo que são comumente encontrados nas planilhas de rastreamento. Itens em negrito são os únicos campos que queremos mostrar na apresentação.

  • ID
  • Título
  • Descrição
  • Status
  • Notas de progresso
  • Parte responsável atual
  • Cliente afetado
  • Data de início
  • Data de vencimento
  • Marcos do projeto e & Data (s) de marco
  • Referência (s) de documento

Atualmente, o processo para criar a apresentação envolve passar manualmente pelas planilhas do Excel e copiar / colar os dados em tabelas criadas nos slides do PowerPoint. No entanto, seria muito mais preferível se pudéssemos automatizar esse processo em algum grau. Além disso, além de manter esses slides atualizados para a apresentação de cada semana, preciso de um método para salvar um instantâneo estático mensalmente para fins de arquivamento.

O que eu preciso é uma maneira de vincular as planilhas aos slides da apresentação. Idealmente, a solução deve ser capaz de:

  • Puxe apenas as colunas necessárias de cada folha.
  • Puxe apenas itens de ação não concluídos de cada folha.
  • Atualize os dados das folhas de origem, automaticamente ou sob demanda, com o mínimo de ação do usuário necessária.
    • (por exemplo: uma atualização sob demanda deve levar apenas alguns cliques por folha - ou, de preferência, apenas alguns cliques para toda a apresentação - e não exigir muita cópia / colagem repetitiva / etc.)
  • Adicione / remova slides automaticamente quando necessário, para acomodar o tamanho dos conjuntos de dados.
  • Permita salvar uma cópia estática da apresentação sob demanda.
  • Seja compatível com o Office 2010 e o Office 2013.

Existe uma maneira de vincular minhas planilhas à apresentação, que pode atender a todas essas necessidades?

    
por Iszi 29.08.2014 / 07:23

2 respostas

1

Se você tiver permissão para baixar e instalar o padrão (e gratuito ) Produto da Microsoft "Power Query", você pode. Mais informações sobre o uso do Power Query podem ser encontradas aqui . Está disponível no Office 2010 e superior. Ele fornece muitas ferramentas para selecionar e mesclar dados de diferentes fontes.

No seu caso, faça o seguinte:

  • Crie uma nova pasta de trabalho do Excel.
  • Usando o Power Query, carregue a primeira lista de ações para sua planilha do Excel.
  • Use "Anexar" para anexar as outras listas de ações à tabela resultante. No final, você deve ter uma lista combinada (dinamicamente vinculada) de todas as suas listas de ações.
  • Usando o Power Query, você pode excluir e reorganizar as colunas, classificar os dados e definir filtros nas colunas. Eu recomendo que você faça a seleção, classificação e filtragem aqui no Power Query, porque se você fizer isso na tabela final do Excel, você precisará reaplicar todos esses filtros toda vez que atualizar a tabela.
  • Salve a pasta de trabalho e feche o Excel.
  • Inicie o Powerpoint e, na guia Inserir na Faixa de Opções, escolha Objeto e selecione "Criar do arquivo" e selecione a pasta de trabalho do Excel recém-criada com as listas de ação combinadas.

Se você precisar atualizar os dados, abra a apresentação do PowerPoint e abra o objeto Excel e clique no botão Atualizar e seus dados serão atualizados. Isso é apenas alguns cliques para atualizar todos das listas de ação (legal, certo?!)

Esta solução funciona para o Office 2010 e 2013.

Finalmente, há os seus requisitos sobre a abrangência de várias planilhas e a gravação de uma cópia estática. Não há uma resposta pronta para isso, mas gostaria que você considerasse fazer isso:

  • Mantenha uma versão "master" do seu PowerPoint com a referência ao arquivo do Excel ( dica: torne este arquivo somente leitura ).
  • Toda semana, atualize os dados com alguns cliques, conforme descrito acima.
  • Copie a tabela do Excel (mesmo que seja grande demais para uma folha) e cole-a como uma imagem (Colar - Imagem ou Colar - Colar especial ... - Objeto Gráfico do Microsoft Office).
  • Agora você pode duplicar todo o slide do PowerPoint com a foto e usar as ferramentas de corte (selecione a foto e escolha na guia Faixa de opções Imagem - Formatar - Cortar) para selecionar os itens certos em cada folha.
  • Você pode reduzir o tamanho da apresentação do PowerPoint selecionando uma foto e indo até a Faixa de opções: Imagem - Compactar fotos e escolhendo as configurações apropriadas.
  • Finalmente, a planilha com os dados originais do Excel pode ser excluída da versão desta semana da apresentação.

Ele não é realmente automatizado, mas mantém uma versão não editável de seus dados na apresentação e cumpre todos os seus requisitos. A vantagem dessa abordagem é que todo o trabalho pode ser feito a partir da própria apresentação do PowerPoint.

    
por 01.09.2014 / 10:55
0

Existem vários passos para o seu pedido e não posso responder a todos em detalhes, mas posso ajudá-lo com algumas peças. Ainda assim será basicamente um conceito. Eu sou um junky VBA para que o que eu vou sugerir. Seria significativamente mais fácil se você pudesse obter acesso ao PowerPoint 2003 porque eles removeram o gravador de macro a partir de 2007. Se você não puder fazer isso, haverá alguma tentativa / erro / googling para fazê-lo. Felizmente, grande parte da estrutura é transferida do Excel, mas não dos itens exclusivos.

Antecedentes) Eu faço algo parecido com isso no meu trabalho atual. Eu tenho uma massa gigante de dados e extraio partes de um registro se ele atende a determinados critérios e cria um slide do PowerPoint que contém esses detalhes. Para o meu propósito, cada registro recebe seu próprio slide, mas parece que você quer um slide com uma tabela mostrando muitos registros.

Conceito) O VBA percorre cada folha de dados, verifica cada registro para ver se é necessário, extrai determinadas informações desse registro e as adiciona a um objeto de tabela no PowerPoint.

1) Puxe apenas as colunas necessárias de cada folha
Mais fácil de manter no código do VBA se os dados estiverem em uma tabela, mas gerenciáveis sem isso. Você tem que codificar explicitamente quais células extrair, então apenas codifique aquelas que você precisa.

2) Puxe somente itens de ação não concluídos de cada folha
Escreva cheques no código que puxa o status e, se não for igual a "Fechado" ou qualquer termo usado, continue adicionando-o aos slides. Caso contrário, pule e mova para o próximo registro. Minhas necessidades são tão complexas que fiz várias colunas auxiliares para descobrir se um registro deve ser incluído ou não e o VBA apenas verifica isso.

3) Atualize os dados das planilhas de origem, automaticamente ou sob demanda, com o mínimo de ação do usuário necessária
O VBA no PowerPoint pode abrir o Excel e chamar uma macro dentro desse arquivo para que você possa criar um botão no slide para executar a macro de atualização no Excel.

4) Adicionar / remover slides automaticamente quando necessário, para acomodar o tamanho dos conjuntos de dados. Gostaria de começar removendo os slides antigos e apenas adicionando-os conforme necessário. Você poderia fazer algo no código que verifica o tamanho do objeto da tabela em relação ao tamanho do slide e, uma vez que fique muito grande, adicione um slide e crie um novo objeto de tabela para começar a trabalhar.

5) Seja compatível com o Office 2010 e o Office 2013
Não posso prometer nada aqui, mas a maioria das coisas no VBA são compatíveis com versões anteriores. Já vi macros antigas quebrarem porque alguma referência foi removida ou algo assim, mas isso só aconteceu uma vez e foi uma besta confusa de um projeto.

6) Salvando uma cópia estática da apresentação manualmente
Como cada cópia é uma cópia estática, independente da planilha original do Excel, isso é tão fácil quanto o File > Salvar como

7) Salvando uma cópia estática automaticamente
Eu não posso dizer se você deseja salvar o Excel ou PowerPoint automaticamente, mas isso funcionaria para ambos. Eu uso um módulo padrão que escrevi para fazer backups de arquivos que estou desenvolvendo para que eu possa sempre consultar uma versão anterior. O meu é escrito para criar um backup sempre que o arquivo é aberto. Só funciona uma vez por dia ou uma vez por segundo, dependendo de como eu chamo. Você pode modificá-lo para executar no máximo uma vez por mês, apenas alterando o formato da data no nome do arquivo.

Option Explicit

Function BackupThisFile(Optional AddTimestamp As Boolean = False)

    'Declarations
    Dim fPath As String
    Dim fName As String
    Dim fExt As String
    Dim iExt As Integer
    Const backupFolder As String = "Backups"

    'Get file path
    fPath = ThisWorkbook.path
    If Right(fPath, 1) <> Application.PathSeparator Then fPath = fPath & Application.PathSeparator

    'Add the backup folder name
    fPath = fPath & backupFolder
    If Right(fPath, 1) <> Application.PathSeparator Then fPath = fPath & Application.PathSeparator

    'Create the backup directory if it doesn't already exist
    On Error Resume Next
        MkDir fPath
    On Error GoTo 0

    'Get file name
    fName = ThisWorkbook.Name                   'Get file name with extension
    iExt = InStrRev(fName, ".")                 'Find the . separating name from extension
    fExt = Right(fName, Len(fName) - iExt + 1)  'Saves the extension
    fName = Left(fName, iExt - 1)               'Clips the extension

    'Compile path, file name, date stamp, and extension into one variable
    fPath = fPath & fName & " " & Format(Date, "yyyy-mm-dd")

    'Add timestamp if required
    If AddTimestamp Then fPath = fPath & " " & Format(Now, "hhmmss")

    'Add the file extension
    fPath = fPath & fExt

    'Save a copy if it doesn't already exist
    Dim fso: Set fso = CreateObject("Scripting.FileSystemObject")
    If Not fso.fileExists(fPath) Then ThisWorkbook.SaveCopyAs fPath

End Function
    
por 05.09.2014 / 15:19