2012-02-09 22 views
7

Ho 30 grafici creati da Excel e incollati su diapositive powerpoint. Ogni mese devo aggiornare questi 30 grafici incorporati facendo clic manualmente sui grafici e modificando.Come aggiornare excel i grafici incorporati in powerpoint?

Sono consapevole che esiste un'opzione per utilizzare pasta speciale, in modo che i dati nei grafici possano essere aggiornati automaticamente facendo clic sui collegamenti di aggiornamento. Tuttavia, i miei grafici devono essere modificati da alcuni utenti. Incolla opzione speciale non consente agli utenti di modificare i grafici. Quindi, non sono in grado di utilizzare questa opzione speciale Incolla.

Penso che la soluzione stia nello scrivere un vba in powerpoint. Può un esperto qui offrire di scrivere questo codice vba per consentire l'aggiornamento di tutti i grafici in powerpoint? Attualmente sto usando powerpoint 2007. La tua assistenza è molto apprezzata.

risposta

14

Se è necessario modificare le tabelle allora è chiaro che si sia bisogno di modificare i file di Excel base, o essere in grado di modificare in PowerPoint

Come si utilizza PowerPoint2007 che fornisce il supporto completo di Excel (a differenza di PowerPoint 2003 che ha una scheda tecnica) vorrei

Parte 1

  1. dati dei file Collega il tuo Excel ai dati di Excel sotto ogni grafico
  2. fornire la capacità o utilizzare tali dati direttamente, o over-ride ai dati utente

Sample

Questo vi dà una soluzione flessibile, se non che Excel sottostante ogni grafico non può essere aggiornato automaticamente tramite un PowerPoint menu Aggiorna collegamenti.

Parte 2

È possibile utilizzare il codice sottostante per verificare se ogni ogni forma su ciascuna slide ha un grafico. Se è così questo codice aggiornerà il primo anello di Excel nel file Excel sotto il grafico (questa parte può essere ottimizzato per gestire più collegamenti)

Sub ChangeChartData() 

    Dim pptChart As Chart 
    Dim pptChartData As ChartData 
    Dim pptWorkbook As Object 
    Dim sld As Slide 
    Dim shp As Shape 

    For Each sld In ActivePresentation.Slides 
     For Each shp In sld.Shapes 
      If shp.HasChart Then 
       Set pptChart = shp.Chart 
       Set pptChartData = pptChart.ChartData 
       pptChartData.Activate 
       Set pptWorkbook = pptChartData.Workbook 
       On Error Resume Next 
       'update first link 
       pptWorkbook.UpdateLink pptWorkbook.LinkSources(1) 
       On Error GoTo 0 
       pptWorkbook.Close True 
      End If 
     Next 
    Next 

    Set pptWorkbook = Nothing 
    Set pptChartData = Nothing 
    Set pptChart = Nothing 

End Sub 
+0

Grazie per la pronta risposta. Ho fatto copia e incolla questo vba in powerpoint e questo vba è in grado di funzionare. Tuttavia, sto ricevendo un menu popup che chiede di aggiornare il file nella mia cartella documenti.La mia fonte, il file excel si trova nella mia cartella del desktop. Come faccio a rimuovere il menu a comparsa. Molte grazie per questo vba. – user1199080

+1

Grazie. Apporto una leggera modifica al codice vba e ora i suoi aggiornamenti perfettamente. Questo codice è un risparmiatore di vita. Grazie ancora. – user1199080

+1

Questa è un'ottima risposta. Questo può anche interrompere i collegamenti? – mooseman

2

questo è abbastanza facilmente realizzabile, senza alcun codice VBA richiesto.

  1. Cliccare sul pulsante "Office", selezionare "Modifica collegamenti a file" (è sotto "Run Compatibility Check", si dovrà scorrere verso il basso per vedere che l'ultima opzione):

    Office Menu, "Prepare" submenu

  2. Seleziona tutti i grafici incorporati (di cui qui come "link"), cliccare su "Aggiorna ora":

    "Links" window

È possibile utilizzare la stessa finestra per interrompere i collegamenti e modificare il file di origine per qualsiasi collegamento specificato.

+1

Questo può essere usato se PPT è collegato direttamente ad Excel, ma non se i file Excel collegati si trovano sotto i grafici – brettdj

Problemi correlati