Está en la página 1de 2

Hola, He diseado una macro en Excel para que se pueda filtrar informacin de una tabla a travs de diferentes CheckBox.

Concretamente se trata de filtrar la columna que contiene siete pases, por lo que he habilitado siete CheckBox, uno por pas. De esta manera el usuario haciendo clic en cada uno puede seleccionar los pases que quiera y la tabla mostrara la informacin solo de esos pases. Aparentemente parece sencillo, pero el problema es que tengo que programar todas las posibles combinaciones de los check box, ademas teniendo en cuenta que el CheckBox puede ser True o False. Para ello he utilizado en el caso de selecciones de 1 o 2 pases, he utilizado la siguiente formulacin como ejemplo: If CheckBox1.Value = True Then 'Solo Spain y SouthAfrica seleccionados If CheckBox1.Value = True And (CheckBox2.Value = True) And (CheckBox3.Value = False) And (CheckBox4.Value = False) And (CheckBox5.Value = False) And (CheckBox6.Value = False) And (CheckBox10.Value = False) Then TablaDatos.AutoFilter Field:=71, Criteria1:="=South Africa", _ Operator:=xlOr, Criteria2:="=Spain" End If etc..... Y para el caso de ms de tres pases he utilizado la formulacin de autofiltro avanzado, teniendo que crear los diferentes rangos segn la combinacin de los pases: 'Solo Spain y SouthAfica y Portugal seleccionados If CheckBox1.Value = True And (CheckBox2.Value = True) And (CheckBox3.Value = True) And (CheckBox4.Value = False) And (CheckBox5.Value = False) And (CheckBox6.Value = False) And (CheckBox7.Value = False) Then TablaDatos.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _ Range("D1:D4"), Unique:=False End If Donde en el rando D1:D4 estaban los criterios de los pases. El problema esta en que tengo que programar 127 combinaciones por pas, ya que cada click en cada CheckBox necesita una respuesta programada. Mi pregunta es: Se puede hacer esto de otra manera ms sencilla? Gracias. Anuncios Google USD 50 en Google AdWords Haz publicidad en buscadores con AdWords. USD 50 gratis para empezar google.com/AdWords

Experto Hola Creo que tienes mal enfocado el problema, pregunta por los 7 checkbox si estn seleccionados, independiente que si estn no o los otros seis, al final si el criterio es vaco es porque no esta seleccionado ese checkbox. Saludos, Usuario

Muchas gracias por contestar tan rapido, no soy muy experto en el tema, pero me podras poner un ejemplo con el cdigo?. Segn tu sugerencia tendra qu tambin utilizar el filtro avanzado indicando en cada caso el rango de los pases a utilizar en funcin de las selecciones de los CheckBox?. Gracias de nuevo y un saludo.

Experto Defines los criterios : criteria1, criteria2, criteria3, criteria4, criteria5, criteria 6, criterioa7 If CheckBox.Checked=true then criteria1= "algo" End If If CheckBox2.Checked = true Then criteria2 = "algo" End If .... y asi sucesivamente y no haces esos filtros tan complejos que no son necesarios Usuario Muchas gracias, segn lo planteas es realmente sencillo, pero no consigo que funcione. Si cada CheckBox es para que la tabla de datos quede filtrada en funcin del pas seleccionado entonces el criterio a aplicar si es true seria un filtro sencillo, por ejemplo: TablaDatos.AutoFilter Field:=7, Criteria1:="=Spain" Lo que no entiendo es que cuando hay varios CheckBox seleccionados, cmo es la macro capaz de decirle a excel que filtre la tabla en funcin de los diferentes CheckBox al mismo tiempo? Perdona que no lo vea con la sencillez que lo planteas, pero como te comente no tengo mucha experiencia en programacin. Dnde crees que me estoy equivocando?

Experto Cmo filtras cuando son varios pases? All es donde lo debes hacer, es simplemente verificar Si criterio1 no es "" entonces lo incluyes dentro del criterio del filtro es as de sencillo

También podría gustarte