¿Alguna forma de diseñar la tabla de Excel vinculada en PowerPoint?

¿Alguna forma de diseñar la tabla de Excel vinculada en PowerPoint?

Tengo una tabla vinculada en mi PPT (PowerPoint 2010), que proviene de una parte de una hoja de cálculo de Excel 2010. Cuando actualizo los datos en Excel, la tabla se actualiza automáticamente en PPT, lo que funciona bien y como se esperaba.

Ahora, el problema es cómo darle estilo a esta tabla vinculada usando los estilos integrados de PowerPoint 2010. Entonces, cuando inserta una tabla de PowerPoint normal, tiene dos pestañas en la cinta debajo de Herramientas de tabla: Diseño y Diseño. En la pestaña Diseño, en la sección Estilos de tabla, puede diseñar rápidamente la tabla utilizando una serie de estilos de tabla integrados.

Sin embargo, cuando tengo una tabla vinculada de Excel, no tengo esas opciones: cuando selecciono la tabla, solo aparece una pestaña en Herramientas de tabla en la cinta, que es Formato. Y no puedo usar ninguno de los estilos de tabla integrados en PowerPoint. Esto hace que la tabla vinculada sea inconsistente en términos de estilo, en comparación con otras tablas normales de PowerPoint.

Respuesta1

Desafortunadamente, los estilos integrados sólo están disponibles para tablas de estilo creadas en PowerPoint en lugar de vincularlas o pegarlas.

Una pifia que puede o no producir resultados aceptables para usted sería crear una tabla de PowerPoint vacía en el estilo de su elección y luego superponer una tabla de Excel vinculada. Un poco de ajuste de ida y vuelta entre Excel y PowerPoint puede producir una alineación razonable, coincidencia de fuentes, etc. El gráfico muestra los resultados de una maqueta muy rápida que hice.

ingrese la descripción de la imagen aquí

Respuesta2

Lo que pasa con el contenido vinculado en general es que PowerPoint no tiene idea de qué es; tiene una imagen del contenido (entregada por la aplicación que produjo el contenido... Excel en este caso) y un enlace al archivo que contiene los datos reales. Todo lo que puede hacer por ti si quieres editar el contenido es activarlo en la aplicación original.

Para empezar, lo mejor que puede hacer es formatear la tabla en Excel.

Si está intentando hacer coincidir un estilo PPT específico, cree una tabla en PPT, cópiela y péguela en Excel. Primero querrá llenar todas las celdas con texto; de lo contrario, Excel aplicará su formato de texto predeterminado a las celdas vacías. Ajuste el ancho de las columnas según sea necesario, agregue sus datos reales y guarde el archivo. Luego vincúlelo de nuevo a PPT.

Respuesta3

Gracias por las respuestas. Pero me parece que la mejor solución sigue siendo diseñar la tabla en PPT y editar los datos en Excel. Entonces escribí un pequeño fragmento de código VBA para transferir datos de Excel a PPT y funciona perfectamente para mí.

Aquí está el código:

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

información relacionada