A continuación se presenta un caso recurrente en el trabajo, por ejemplo cuando se te pide que hagas una presentación del control de algún proceso que se ha estado analizando. La mejor forma de presentar las evoluciones de los KPI´s es mediante gráficos interactivos, dinámicos y de rápidos entendimiento. Sin embargo, resulta tedioso si es que se tiene muchos de ellos en el Excel y se necesita estar copiando y pegando al Power Point donde se realizará la presentación. A continuación se muestra ejemplos de los gráficos y su tabla de datos:
(Para mayor visualización de la imagen, hacer click en la misma)
Por lo tanto, se hará el uso de macros para hacer esta exportación mucho más sencilla.
El código es el siguiente:
-Aquí se declaran las variables a utilizar
Sub CopyAllChartsToPresentation()
Dim PP As PowerPoint.Application
Dim PPPres As PowerPoint.Presentation
Dim PPSlide As PowerPoint.Slide
Dim i As Integer
-Aquí contrasta si existen gráficos en la hoja activa y si no lanza un mensaje de que no hay gráfico
If ActiveSheet.ChartObjects.Count < 1 Then
MsgBox “NoGrafico”
Exit Sub
End If
-Aqui abre Power Point y crea una nueva presentacion
Set PP = New PowerPoint.Application
Set PPPres = PP.Presentations.Add
PP.Visible = True
-Ahora va a iterar desde 1 hasta la cantidad de gráficos que exista en la hoja seleccionada, en nuestro caso hasta tres
For i = 1 To ActiveSheet.ChartObjects.Count
-Aqui esta copiando el gráfico como una imagen
ActiveSheet.ChartObjects(i).Chart.CopyPicture _
Size:=xlScreen, Format:=xlPicture
-Aqui la macro para un momento, para que permita copiar la imagen, es decir, le da una pausa
Application.Wait (Now + TimeValue("0:00:1"))
ppSlideCount = PPPres.Slides.Count
Set PPSlide = PPPres.Slides.Add(SlideCount + 1, ppLayoutBlank)
PPSlide.Select
-Aqui se pega el grafico, hasta el ultimo
PPSlide.Shapes.Paste.Select
PP.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
PP.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True
Next i
Set PPSlide = Nothing
Set PPPres = Nothing
Set PP = Nothing
End Sub
-Se adjunta el archivo utilizado, el cual funciona correctamente.
Enviar gráficos de Excel a un PowerPoint
Por: Katherine Angela
Nota: Se requiere desde el editor de VBA, acceder a Herramientas, Referencias, e incluir la librería Microsoft PowerPoint 14 o superior.
(Para mayor visualización de la imagen, hacer click en la misma)
23/07/2015 a las 4:46 pm
Buen día!
Muchas gracias por tu aporte y quisiera saber cual es la programación para copiar las gráficas de un libro entero que tiene al rededor de 20 hojas tipo gráfico
22/02/2017 a las 3:02 pm
Hola, sabes que hice lo que indicabas, pero aun así no corre el programa, otra duda por ejemplo si quiero que se trasladen varios gráficos a una sola diapositiva... como lo puedo hacer?
Atenta a tus comentarios
27/03/2017 a las 6:48 pm
funciona todo hasta la parte de "Aqui se pega el grafico, hasta el ultimo" en esta parte marca error 424, falta de objeto.
podrias corregir esa parte, desde ya muchas gracias.
18/10/2020 a las 9:40 am
Excelente aportación y muy útil. Gracias