Ayuda con vba y gráficos en excel !

Como puedo hacer un gráfico que se actualice con los datos que elija en una hoja de excel mediante un filtro, solo quiero que me salgan los valores del filtro.
Y otra cosita:
Con que código puedo hacer que al abrir un libro o plantilla se me abran otros dos, ya que tengo hecho un código en vba que coge valores de esos libros y si no los abro me da: "error '9' en tiempo de ejecución, subíndice fuera de intervalo". He intentado con el evento open es decir:
sub workbooks_open ()
Y aquí le indico que los abra, pero no me funciona.
Gracias espero que puedas ayudarme.
Aurora.

4 Respuestas

Respuesta
1
A la primera pregunta, la solución es darle al gráfico como datos de origen todos los datos, y posteriormente filtrar. Es decir, si tienes el rango de datos entre A1 y B100, ese debe ser su origen de datos.
Yo lo estoy probando con Excel XP y funciona. Dime si tienes algún problema.
Acerca del código para abrir dos libros, prueba con este:
Private Sub Workbook_open()
Workbooks.Open ("C:\Mis Documentos\prueba.xls")
Workbooks.Open ("C:\Mis Documentos\prueba2.xls")
ActiveWindow.ActivatePrevious
End Sub
Quizás tu error es en la es de WorkbookS del principio, que no debes ponerla.
Yo espero haberte ayudado.
Un saludo,
Estoy igual, ya que como te dije yo tenia ese código metido con es o sin es ya he probado los dos, pero claro abrir lo abre pero cuando ejecuto el procedimiento, lo que yo quiero es que al abrir el libro se abran directamente y no lo hace.
Y lo de los gráficos eso ya lo pensé pero no se puede ya que si tienes 500 filas y luego se filtran solo 3 el gráfico queda todo vacío y no se aprecian los valores yo creo que sera con gráficos dinámicos.
Lo del evento open, lo he puesto en el modulo ¿dónde lo tengo que poner para que al abrir el libro se abran ya que así no lo hace?
Gracias
El procedimiento lo debes poner en la carpeta ThisWorkbook. Asío te debe funcionar.
Acerca de los gráficos, yo estaba utilizando el filtro automático, y efectivamente funciona. Sin embargo, por lo que me dices, imagino que el que tú quieres utilizar es el filtro avanzado. Para ello se me ocurre la solución de utilizar un botón de actualización del gráfico cada vez que utilices el filtro, al que le asocies el siguiente código:
Sub Actualizar()
Dim rango As Variant
rango = "A500:" & Range("A500").End(xlToRight).End(xlDown).Address(False, False)
ActiveSheet.ChartObjects("Gráfico 1").Activate
ActiveChart.ChartArea.Select
ActiveChart.SetSourceData Source:=Sheets("Hoja1").Range(rango), PlotBy:=xlColumns
End Sub
Donde varían:
A500, que será la casilla donde comienzan los resultados del filtro.
Hoja1: que será le nombre de tu hoja de trabajo.
Gráfico 1: que será el nombre del gráfico que quieres que se actualice.
Espero que esta solución te haya ayudado.
Un saludo,
Respuesta
1
Aurora,
Probé filtrando valores y mi gráfico se actualiza con los valores filtrados solamente.
El evento lo estás escribiendo mal. En el editor de VB abres el Explorador de Proyectos (Ctrl+R) (aparece a la izquierda) y haces doble click en "ThisWorkbook"; luego a la derecha eliges del primer combo "Workbook" y verás que se escribe:
Private Sub Workbook_Open()
Ante cualquier duda, consúltame, o envíame tu archivo a
[email protected]
Gustavo
Respuesta
Una forma de hacerlo es hacer una macro que filtre, pase la información a otra hoja y luego con la info de esta página hacer el gráfico. Puedes hacer un botón que corra la macro cada vez que la necesites.
Para abrir los archivos, grava una macro que abra los archivos, luego pasa el código a thisWorkBook en el editor de Visual de Excel.
Respuesta
Una de las ventajas de Excel es justamente esa, haz el filtro, y sobre los resultados selecciona el área del gráfico, del detalle esta que cada vez que hagas el filtro, el área de trabajo del gráfico sea la misma para que la actualización sea coherente, si no consigues eso, deberás usar una hoja auxiliar donde por vínculos jales la informmaciòn de la hoja del gráfico.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas