jueves, 14 de noviembre de 2013

Grafico Animado en Excel

Con la ayuda de unas sencillas fórmulas buscarv y un simple código de macro podremos hacer gráficos animados en excel.

La planilla deberá contener 3 sectores :
Hoja modelo, con el "Sector de Datos", el "Sector de Selección" y el gráfico

Datos : una tabla donde tendremos los distintos datos ( tipo base de datos)

La "Celda Selectora" es la que contendrá el valor del mes a mostrar. La macro cambiará su valor
Selección : un sector de la hoja donde dada una "celda selectora" que elija el mes la sucursal o el empleado (según corresponda) las celdas continuas, mediante fórmulas de búsqueda (tipo buscarv, buscarh, etc) nos traigan los valores de la tabla de datos correspondientes a dicha selección.
Las celdas del "sector de selección" buscan los datos en la tabla del "sector de datos" con fómulas del tipo Buscarv
Luego un gráfico, que lo armaremos con los valores del sector "Selección" de manera tal de que al cambiar la "celda selectora" el gráfico tomará como orígenes los nuevos valores.
La macro lo que hará es cambiar progresivamente el valor de la celda selectora y se generará el efecto animación buscado.


Las series del gráfico toman sus valores del "Sector de Selección"

Luego de plantear el gráfico ( en el ejemplo es de burbujas, pero puede hacerse de barraras, columnas o lo que cada uno necesite) agregamos un botón que haga referencia a la macro con un código más o menos como este :

Sub Botón2_AlHacerClic()
limpia ' en la macro limpia le pone fondo blanco a todas las celdas del rango de meses
' buscamos el ultimo mes con datos
hacer = True
fila = 2
While hacer
If Cells(fila, 1) = "" Then
        hacer = False
        Else
        meses = Cells(fila, 1)
        fila = fila + 1
        End If
Wend ' fin de buscqueda del ultimo mes con datos

' hace loop con la cantidad de meses con datos
For y = 1 To meses
fila = y + 1
If y > 1 Then
' cambia el color de fondo de la celda del mes anterior
Cells(1 + y - 1, 1).Select
    Selection.Interior.ColorIndex = 2
End If
' asigna a mes el valor de la celda según la posición respectiva
mes = Cells(fila, 1)

' en la celda 3,10 (J3) se cambia el valor numerico por el valor del mes
' esto hará luego que las funciones con las formulas buscarv cambien su valor
' y por lo tanto, el gráfico cuyas series apuntan a estos valores cambiaran sus valores
Cells(3, 10) = mes
'cambia el color a la celda del mes en curso
Cells(1 + y, 1).Select
    Selection.Interior.ColorIndex = 6
    
' realiza una espera de 2 segundos por cada valor del mes(para visualizar mejor el gráfico)
Application.Wait (Now + TimeValue("0:00:2"))


Next y

End Sub


Sub limpia()
'
' Macro1 Macro
' Macro grabada el 14/11/2013 por rapeceche
'

'
    Range("A2:A13").Select
    Selection.Interior.ColorIndex = xlNone
    Range("A2").Select
End Sub

El archivo ejemplo lo pueden bajar de <<<< acá>>>>>

No hay comentarios: