jueves, 22 de agosto de 2013

Mostrar Gráficos en formularios UserForm de VBA

Hola bueno esta es mi primera entrada, y como cualquier primerizo no sabia como empezar, pero bueno lo hare con este post. que trata de como mostrar gráficos echos en una hoja de Excel en un formulario User form de VBA, bueno esto lo hice por que vi a unos amigos en you tube que buscaban esto, bueno sin mas palabras manos a la obra

Bueno empezaremos creando gráficos en Excel para ello hice una tabla de producción de diferentes departamentos, con el cual crearemos el gráfico




antes que me olvide, en la hoja que crearemos el grafico debe llamarse "Graficos", esto es muy importante

Bueno creo que no sera ningún problema realizar este primer paso verdad.

Lo segundo que haremos sera abrir VBA, (alt+F11), en el cual vamos a crear un UserForm, al cual llamaremos GraficoForm, en el cual insertaremos un image (Image1), y un commandbutton(CmdSalir) ojo los nombres entre paréntesis son lo nombres que le asigne a cada control, creo que esta demás decir que los nombres se cambian en la propiedad name,
Bueno ahora vayamos con el código para realizar el trabajo, una vez creado el formulario quedara mas o menos asi:


bueno ahora vayamos al código de este formulario, y nos posicionamos en el evento Initialize, en el cual escribiremos el siguiente código

Private Sub UserForm_Initialize()
'seleccionamos el grafico,,,,,
    Set grafico1 = Sheets("Graficos").ChartObjects(1).Chart

'   guardamos el grafico como imagen jpg
    NombreGrafico = ThisWorkbook.Path & Application.PathSeparator & "temp.jpg"
    grafico1.Export Filename:=NombreGrafico, FilterName:="JPG"

'   llamamos y mostramos el grafico guardado
    Image1.Picture = LoadPicture(NombreGrafico)
End Sub

esto nos permitirá hacer lo principal de este trabajo mostrar el gráfico en este userform

luego en el evento click del commandbutton escribiremos los :

Private Sub CmdSalir
Unload Me
Sheets("Inicio").activate
End Sub

esto cerrara el formulario y nos posicionara en la hoja inicio

bueno como dije antes nos dejara en la hoja inicio entonces por tal debemos tener una hoja llamada "Inicio"
bueno en esta hoja crearemos una forma para poder llamar al formulario conteniendo el gráfico,



 para ello debemos asignarle una macro que haremos ahora.. es muy sencillo, en VBA insertaremos un modulo, en el cual escribiremos este corto código

Sub MostrarGrafico()
    GraficoForm.show
End Sub

bueno todo esta quedando listo, solo nos falta asignar a la forma creada esta macro o procedimiento y con esto terminaríamos este trabajo



bueno si todo lo hicimos bien esto debe funcionar a la perfección, 

si tiene alguna duda o consulta estaré gustoso de poder ayudarte, me gustaría colgar este archivo, pero eso es algo que recién estoy averiguando, pero te dejo este correo l.quispe1984@gmail.com

espero haberte ayudado en algo 

hasta la próxima 

4 comentarios:

  1. hola, tengo un formulario para registrar informacion en una base de datos, pero quiero que en ese mismo formulario se vea un grafico con lagunas variables de esa base de datos

    ResponderEliminar
  2. buena macro Gracias!

    ResponderEliminar