Excel - checkbox con filtros

 
Vista:

checkbox con filtros

Publicado por García (4 intervenciones) el 05/07/2007 11:12:47
Hola a todos,

Tengo un problema para el que no encuentro solución y llevo varios días dandole vueltas.
He creado una hoja excel en la que hago una consulta a una base de datos. Resulta que por cada fila que devuelve me genera una linea en la hoja excel en el que el último de los campos es un checkbox (creado dinamicamente por codigo). En esta hoja meto un "Autofiltro" para deseleccionar o seleccionar las lineas que me interesan pero aqui me surje el problema..

Imagina que devuelve 10 registros, por lo que me genera 10 checkbox. Si filtro por uno de los criterios me sale el listado que corresponde con el filtro (por ejemplo 5 lineas), bueno, pues en la linea 6 me salen los otros 5 montados un checkbox sobre otro, de forma que si pongo el último a visible = false, se me ve el anteúltimo.

Se me han pasado por la cabeza varias ideas, pero ninguna me ha solucionado nada. Lo único que se me ocurre es capturar el evento que produce el filtro y poner todos los que no cumplan el criterio a Visible = False o algo así. Ya no se me ocurre nada...

Gracias de antemano por vuestra ayuda y espero que alguien me pueda echar una mano que yo ya no tengo ideas.

Muchisimas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Abraham Valencia
Val: 313
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

RE:checkbox con filtros

Publicado por Abraham Valencia (2415 intervenciones) el 05/07/2007 18:40:36
Que base de datos es??? el campo es tipo si/no???? Importas a excel, o exportas desde la base de datos???? etc

Abraham
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:checkbox con filtros

Publicado por García (4 intervenciones) el 06/07/2007 15:05:29
Hola Abraham,

La base de datos es Oracle. Lo que hace es coger el campo Total (que me lo calcula otra macro con una serie de calculos y me lo escribe en la Hoja1) y sumar esa cantidad por cada oficina, es decir:

Hoja1
OFICINA ZONA TOTAL CONTABILIZAR (checkbox)
123 NAVARRA T.A -1.154,06 V
123 NAVARRA T.A 54,86 V
456 TARRAGONA -1.289,15 V
456 TARRAGONA -8,91
123 NAVARRA T.A -6,98 V

Una vez seleccionado el checkbox, me escribe en la Hoja2 el total por oficina:
OFICINA TOTAL
123 -1154,06 + 54,86 -6,98
456 -1.289,15

Todo esto me lo descargo desde la BBDD, es decir, la importo a excel. Mi problema es que, por ejemplo, yo quiero deseleccionar todas las oficinas con código 456 por lo que pongo un filtro para quitar el checkbox, y me visualiza algo así:

OFICINA ZONA TOTAL CONTABILIZAR (checkbox)
456 TARRAGONA -1.289,15 V
456 TARRAGONA -8,91 V
V <---- Este me queda porque se montan todos los checkbox uno encima del otro de las que no se me visualizan. He probado a generar un evento para la hoja1, el Sub Worksheet_Calculate() que lo que hace es poner todos los cheks con Visible = False y luego me pone los que visualizo con Visible = true. No es muy optimo pero funciona. Solo tengo un problema:

Como yo hago todo en la macro no hay formulas que recalcular por lo que no me salta. He mirado los demás eventos del worksheet y ninguno se ajusta a lo que necesito.

Busco algo como un evento que salte cuando se me refresque la hoja, o cuando seleccione algun filtro, o algo por el estilo y no encuentro nada.

Agradecería enormemente que me echarais una mano porque me he atascado muchisimo y no se como seguir con ello. Muchas gracias de antemano a todos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:checkbox con filtros

Publicado por García (4 intervenciones) el 06/07/2007 15:12:44
Hola Abraham,

La base de datos es Oracle. Lo que hace es coger el campo Total (que me lo calcula otra macro con una serie de calculos y me lo escribe en la Hoja1) y sumar esa cantidad por cada oficina, es decir:

Hoja1
OFICINA------- ZONA --------------- TOTAL ------CONTABILIZAR (checkbox)
---123 -------NAVARRA TA ------- 1.154,06------- V
---123 -------NAVARRA TA -------54,86------------- V
---456 -------TARRAGONA -------1.289,15------- V
---456 -------TARRAGONA -------8,91-----------------
---123 -------NAVARRA TA -------6,98---------------V

Una vez seleccionado el checkbox, me escribe en la Hoja2 el total por oficina:
OFICINA ---------------------- TOTAL
--- 123 ----------------------1154,06 + 54,86+6,98
--- 456 --------------------- 1.289,15

Todo esto me lo descargo desde la BBDD, es decir, la importo a excel. Mi problema es que, por ejemplo, yo quiero deseleccionar todas las oficinas con código 456 por lo que pongo un filtro para quitar el checkbox, y me visualiza algo así:

OFICINA------- ZONA --------------- TOTAL ------CONTABILIZAR (checkbox)
---456 -------TARRAGONA -------1.289,15------- V
---456 -------TARRAGONA -------8,91---------------V
---------------------------------------------------------------V <---- Este me queda porque se montan todos los checkbox uno encima del otro de las que no se me visualizan. He probado a generar un evento para la hoja1, el Sub Worksheet_Calculate() que lo que hace es poner todos los cheks con Visible = False y luego me pone los que visualizo con Visible = true. No es muy optimo pero funciona. Solo tengo un problema:

Como yo hago todo en la macro no hay formulas que recalcular por lo que no me salta. He mirado los demás eventos del worksheet y ninguno se ajusta a lo que necesito.

Busco algo como un evento que salte cuando se me refresque la hoja, o cuando seleccione algun filtro, o algo por el estilo y no encuentro nada.

Agradecería enormemente que me echarais una mano porque me he atascado muchisimo y no se como seguir con ello. Muchas gracias de antemano a todos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Abraham Valencia
Val: 313
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

RE:checkbox con filtros

Publicado por Abraham Valencia (2415 intervenciones) el 06/07/2007 18:20:49
si usas los "checkbox" de la barra de formularios pues en relaidad, asi los centres bien en la celda, simepre dara impresion de que se "amontonan". Uso los de la barra de controles, dale click derecho a c/u, dale a "Formato de control", "Propiedades" y activa "mover y cambiar tamaño con la celda". Si todos tienes esa propiedad activada, no se te "amontonaran" al filtrar

Abraham
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:checkbox con filtros

Publicado por García (4 intervenciones) el 09/07/2007 18:08:39
Muchas gracias por tu respuesta Abraham pero no se a que controles te refieres. Yo he creado el checkbox de la siguiente manera:

Dim cBox As Object
Dim Izq, Dcha, Centro As Double
Dcha = Cells(rownum + 17, 23).Left
Izq = Cells(rownum + 17, 22).Left
Centro = ((Dcha + Izq) / 2) - 10
Set cBox = ActiveSheet.CheckBoxes.Add(Centro, Cells(rownum + 17, 22).Top, Cells(rownum + 17, 22).Width = 12, Cells(rownum + 17, 22).Height = 12)
With cBox
.Caption = ""
.Text = ""
.Locked = False
.LockedText = False
.Value = True
.Name = "CBX_" & (rownum + 17) ' Nombre del control, p.e: CBX_18
.OnAction = "'" & LIBPRI & "'!CheckBox_Click"
End With

¿Hay algun otro control que te permita hacer las mismas acciones? He mirado por interner y he visto OLEObjects, ActiveX, Shapes,... pero no me queda claro de que tengan la misma versatilidad.¿ Me podrias poner un ejemplo del control al que te refieres?

Muchas gracias de antemano y ya siento andar volviendote loco.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar