Gibt es eine Möglichkeit, die verknüpfte Excel-Tabelle in PowerPoint zu formatieren?

Gibt es eine Möglichkeit, die verknüpfte Excel-Tabelle in PowerPoint zu formatieren?

Ich habe eine verknüpfte Tabelle in meiner PPT (PowerPoint 2010), die aus einem Teil eines Excel 2010-Arbeitsblatts stammt. Wenn ich die Daten in Excel aktualisiere, wird die Tabelle in PPT automatisch aktualisiert, was einwandfrei und wie erwartet funktioniert.

Das Problem besteht nun darin, diese verknüpfte Tabelle mit den integrierten Formatvorlagen von PowerPoint 2010 zu formatieren. Wenn Sie also eine normale PowerPoint-Tabelle einfügen, stehen Ihnen in der Multifunktionsleiste unter Tabellentools zwei Registerkarten zur Verfügung: Entwurf und Layout. Unter der Registerkarte Entwurf im Abschnitt Tabellenformatvorlagen können Sie die Tabelle schnell mit einer Reihe integrierter Tabellenformatvorlagen formatieren.

Wenn ich jedoch eine verknüpfte Tabelle aus Excel habe, stehen mir diese Optionen nicht zur Verfügung: Wenn ich die Tabelle auswähle, wird unter Tabellentools auf der Multifunktionsleiste nur eine Registerkarte angezeigt, nämlich Format. Und ich kann keinen der integrierten Tabellenstile von PowerPoint verwenden. Dies macht die verknüpfte Tabelle im Vergleich zu anderen regulären PowerPoint-Tabellen stilistisch inkonsistent.

Antwort1

Leider sind die integrierten Stile nur für die Formatierung von Tabellen verfügbar, die in PowerPoint erstellt und nicht verknüpft oder eingefügt wurden.

Ein Behelf, der für Sie möglicherweise akzeptable Ergebnisse liefert, aber nicht muss, wäre, eine leere PowerPoint-Tabelle im Stil Ihrer Wahl zu erstellen und dann eine verknüpfte Excel-Tabelle darüber zu legen. Ein wenig Hin- und Her-Anpassen zwischen Excel und PowerPoint kann zu einer vernünftigen Ausrichtung, Schriftartübereinstimmung usw. führen. Die Grafik zeigt die Ergebnisse eines sehr schnellen Modells, das ich erstellt habe.

Bildbeschreibung hier eingeben

Antwort2

Das Problem mit verknüpften Inhalten ist im Allgemeinen, dass PowerPoint keine Ahnung hat, was es ist. Es hat ein Bild des Inhalts (das ihm von der Anwendung übergeben wurde, die den Inhalt erstellt hat ... in diesem Fall Excel) und einen Link zu der Datei, die die eigentlichen Daten enthält. Wenn Sie den Inhalt bearbeiten möchten, kann PowerPoint ihn nur in der Original-App aktivieren.

Am besten formatieren Sie die Tabelle zunächst in Excel.

Wenn Sie versuchen, einen bestimmten PPT-Stil zu verwenden, erstellen Sie eine Tabelle in PPT und kopieren/fügen Sie sie in Excel ein. Sie sollten zuerst alle Zellen mit Text füllen, sonst wendet Excel seine Standardtextformatierung auf leere Zellen an. Passen Sie die Spaltenbreiten nach Bedarf an, fügen Sie Ihre tatsächlichen Daten hinzu und speichern Sie die Datei. Verlinken Sie sie dann zurück zu PPT.

Antwort3

Danke für die Antworten. Aber meiner Meinung nach ist es immer noch die beste Lösung, die Tabelle in PPT zu formatieren und die Daten in Excel zu bearbeiten. Also habe ich ein kleines Stück VBA-Code geschrieben, um Daten von Excel nach PPT zu übertragen, und es funktioniert bei mir perfekt.

Hier ist der Code:

Option Explicit
Option Base 1

Const WB_FINANCIALS As String = "\CPMR Financials.xlsm"
Const WS_SALES As String = "Sales Forecast"

Const SLIDE_SALES_FORECAST As String = "SalesForecast"

Const TABLE_SALES_FORECAST As String = "TableSalesForecast"

Const R_CPMA_COM_SALES As String = "cpma_complete_sales"
Const R_CPMA_LARGE_ATC_SALES As String = "cpma_large_atc_sales"
Const R_CPMA_REGULAR_ATC_SALES As String = "cpma_regular_atc_sales"
Const R_CPMA_REPORTS_SALES As String = "cpma_reports_sales"
Const R_RXR_REPORTS_SALES As String = "rxr_reports_sales"
Const R_TOTAL_SALES As String = "total_sales"


Sub ReadFinancialsBook()
    Dim XLApp As Excel.Application
    Dim FBook As Excel.Workbook
    Dim SalesForecast As Excel.Worksheet

    Set XLApp = Excel.Application
    Set FBook = XLApp.workbooks.Open(FileName:=ActivePresentation.Path + WB_FINANCIALS, ReadOnly:=True)
    Set SalesForecast = FBook.Worksheets(WS_SALES)

    Dim PPT As Presentation
    Dim SalesSlide As Slide

    Set PPT = ActivePresentation
    Set SalesSlide = PPT.Slides(SLIDE_SALES_FORECAST)
    Call ReadSalesForecast(SalesSlide, SalesForecast)

    Set SalesSlide = Nothing
    Set PPT = Nothing

    FBook.Close
    Set SalesForecast = Nothing
    Set FBook = Nothing
    Set XLApp = Nothing
End Sub

Private Sub ReadSalesForecast(S As Slide, WS As Excel.Worksheet)
    Dim T As Table
    Set T = S.Shapes(TABLE_SALES_FORECAST).Table

    Call WriteWSRangeToTable(T, 2, 4, WS, R_CPMA_COM_SALES)
    Call WriteWSRangeToTable(T, 5, 4, WS, R_CPMA_LARGE_ATC_SALES)
    Call WriteWSRangeToTable(T, 8, 4, WS, R_CPMA_REGULAR_ATC_SALES)
    Call WriteWSRangeToTable(T, 11, 4, WS, R_CPMA_REPORTS_SALES)
    Call WriteWSRangeToTable(T, 14, 4, WS, R_RXR_REPORTS_SALES)
    Call WriteWSRangeToTable(T, 17, 4, WS, R_TOTAL_SALES)

    Set T = Nothing
End Sub

Private Sub WriteWSRangeToTable(T As Table, row As Integer, col As Integer, WS As Excel.Worksheet, Name As String)
    Dim i, j, r, c As Integer
    Dim str As String

    r = WS.Range(Name).Rows.Count
    c = WS.Range(Name).Columns.Count

    For i = 1 To r
        For j = 1 To c
            str = CStr(WS.Range(Name).Cells(i, j))
            str = Format(str, "#,##0")
            T.Cell(row + i - 1, col + j - 1).Shape.TextFrame.TextRange.Text = str
        Next j
    Next i
End Sub

verwandte Informationen