Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

VBA: Rellenar objetos en Power Point desde celdas de Excel

La idea del post de hoy es comprobar cómo podemos rellenar, con el contenido de nuestras celdas de Excel, algunos objetos de una presentación de PowerPoint.

Primero tenemos que tener una presentación ya generada, con diferentes Objetos ya insertados.
Veamos un ejemplo:


En mi ejemplo dispongo de:
- un objeto Título
- un cuadro de texto (CuadroTexto 1)
- una autoforma (Elipse 1)
- un gráfico...

Es fundamental, para facilitar la labor, tener identificados los objetos sobre los que vamos a trabajar (volcar la información desde Excel).
Puedes mostrar el panel de selección para este fin.


En nuestra hoja de cálculo, dentro de un libro de trabajo, tenemos la información a trasladar:


Es importante que sepas que, con lo que describiremos a continuación, no se traspasan los formatos dados en Excel... por ejemplo, si te fijas en la celda A5, en realidad, el valor de la celda es 1234!!, y no lo que mediante un formato personalizado se visualiza!!.
Esto vale para cualquier tipo de formato!!.


Añadimos el siguiente código en un módulo estándar de nuestro proyecto de VB:

Sub TrasladarDatoExcelaPPT()
Dim oPPT As Object, oPrsn As Object, oSlide As Object
Dim oShape1 As Object, oShape2 As Object
Dim ficheroPPT As String

'La ruta completa de la presentación de PPT
ficheroPPT = "E:\excelforo\Excel_a_PPt.pptx"

'Definimos el objeto de trabajo PowerPoint
On Error Resume Next
Set oPPT = GetObject(, "PowerPoint.Application")
'controlamos posibles errores
If Err.Number 0 Then
'y creamos el objeto, i.e., la presentación
Set oPPT = CreateObject("PowerPoint.Application")
End If
Err.Clear
On Error GoTo 0
'hacemos visble la aplicación (voluntario.. pero recomendable)
oPPT.Visible = True

'Abriremos nuestra presentación
Set oPrsn = oPPT.Presentations.Open(ficheroPPT)
'accedemos a la primera diapositiva...
Set oSlide = oPrsn.Slides(1)
'...y nos centramos en las autoformas, cuadros de texto, etc
'(es importante tener controlado el destino previamente!!!)
Set oShape1 = oSlide.Shapes("CuadroTexto 1")
Set oShape2 = oSlide.Shapes("Elipse 1")

'modificamos el texto del Título
oSlide.Shapes.Title.TextFrame.TextRange.Text = "Modificación realizada"
'y finalmente llevamos el contenido de la celda A1 de la hoja1 de nuestro libro
'al objeto 1 (al cuadro de texto)
oShape1.TextFrame.TextRange.Text = _
ThisWorkbook.Sheets(1).Range("A1").Value
'y el contenido de la celda A5 a la Elipse de la diapositiva
oShape2.TextFrame.TextRange.Text = _
ThisWorkbook.Sheets(1).Range("A5").Value

'guardamos y cerramos la aplicación (PPT)
'oPPPrsn.Save
'oPPPrsn.Close
'oPPApp.Quit

'y liberamos memoria
Set oPPT = Nothing
Set oPrsn = Nothing
Set oSlide = Nothing
Set oShape1 = Nothing
Set oShape2 = Nothing
End Sub


Estamos listos... Ya podemos ejecutar nuestra macro.
Podremos ver como se van produciendo los cambios hasta llegar al resultado final:


haz clic en la imagen


This post first appeared on EXCEL FORO: EJERCICIOS, EJEMPLOS, SOLUCIONES, DUDA, please read the originial post: here

Share the post

VBA: Rellenar objetos en Power Point desde celdas de Excel

×

Subscribe to Excel Foro: Ejercicios, Ejemplos, Soluciones, Duda

Get updates delivered right to your inbox!

Thank you for your subscription

×