Para Dam: Gráficos xlsx a pptx mediante vba

Definitivamente uno debe acercarse a los que saben para siempre para construir conocimiento...
Mil gracias...
Pero como esta relación no termina acá (Cara sonriente con ojos risueños) te voy a contar algo que no he logrado hacer y he acudido a otros expertos en otras instanacias pero no logro llegar a solucionarlo.
Desde hace un par de días he navegado buscando la solución para que una macro que se ejecute desde un botón explore el libro completo y exporte las gráficas (como gráficas) a un documento ya existente de Power Point, y que las coloque en determinadas hojas (numero de slide) que ya tienen creadas el archivo. O sea dejando libres unas y ocupando las que se le definan.
He encontrado dos códigos, uno de ellos muy viejos y no lo he probado y el otro que según dice el experto que lo publico esta en 2010, pero hice varias pruebas:
En el archivo que baje y se bloquea la macro en esta sentencia: diapositiva. Shapes. Paste. Selectel

Abre tres slide en una PPS nueva pero pega solo una gráfica de tres que contiene el archivo.
Te lo adjunto.

Pegue el mismo código en mismo archivo que tu me enviaste:
Se bloquea en el primer Dim:
Dim archivoPPT As PowerPoint.Application
Y sale un mensaje: No se ha definido el tipo definido por el usuario...
Algo tiene que ver la versión, por que la puedo cambiar. ¿O ajustar teniendo el cuenta la versión de mi office? Es 2013.

¿Cómo lo puedo resolver?

1 respuesta

Respuesta
1

Te envié una página con información, revísala y me comentas

Saludos. Dam

Respuesta recibida y comentarios enviados...

Prueba con esta macro, selecciona algo en excel un rango o una imagen o una gráfica y ejecuta la macro, te crea un slide, si la vuelves a ejecutar te crea otro slide, pero en el mismo archivo de ppt

Sub Export_PowerPoint()
'por.dam
On Error Resume Next
    Selection.Copy
    If Range("AB1") = "" Then
        Set PPApp = CreateObject("Powerpoint.Application")
        PPApp.Visible = True
        Set ppFile = PPApp.Presentations.Add(True)
            ppFile.Slides.Add(ppFile.Slides.Count + 1, 11).Select
            PPApp.ActiveWindow.View.PasteSpecial(link:=True).Select
        Range("AB1") = "X"
    Else
        Set PPApp = GetObject(, "PowerPoint.Application")
        Set ppFile = PPApp.ActivePresentation
            ppFile.Slides.Add(ppFile.Slides.Count + 1, 11).Select
            PPApp.ActiveWindow.View.PasteSpecial(link:=True).Select
    End If
End Sub

No tengo 2013, así que no la puedo probar, a mí me funciona, prueba y luego tratamos de adaptarla a lo que necesitas.

Saludos. Dam

Esta muy buena, funciona perfecto si ajustarle nada.

Pero quiero que vayamos mas lejos y no tener que seleccionar manualmente las gráficas ya que se encuentran en hojas distintas, y seria imposible irlas seleccionando una a una sino que el mismo barra el archivo buscándolas y el archivo que abra sea una ya existente.

Sera mucho pedir?

Te envié un archivo de ejemplo

Dam mil gracias por tu tiempo y conocimiento.... Eso te hace grande....

De nuevo mil gracias, lo que voy a hacer es utilizar la macro para generar una ayuda para exportar las gráficas con hojas bloqueadas y luego moverlas a la plantilla necesaria.

Si por casualidad logras descifrar la forma de abrir una PPTX ya creada y no una activa te agradecería me escribas al correo.

Por ahora te dejo descansar.... en esta pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas