.14/09/16
Hola,
Habia empezado a ensayar alguna solución en Visual Basic que extrajera en otro rango la selección que hiciste en el formulario.
Pero me dí cuenta de que eso lo hace MS Excel - y lejos más eficientemente que una macro- a través de sus Tablas Dinámicas.
Así que me tome el tiempo para reproducir tu ejemplo y le agregué una de esas tablas quedando algo como esto:
Al efecto de mandarte esta imagen, coloqué la tabla al pie, pero mientras la construyes puedes indicarle que la muestra en otra hoja.
Si te interesara como solución a tu necesidad, aquí te explico cómo se crea:
Una tabla dinámica es una herramienta de MS Excel para obtener un reporte agrupado de distintas maneras basado en datos incluidos en una tabla o base de datos.
Es dinámica porque, una vez armada, permite agregar, mover, o eliminar campos en ella hasta lograr el reporte deseado.
Para armarla, sigue los siguientes pasos:
1.– Es necesario que cada columna tenga un título único, aún aquellas que estuvieran vacías.
Selecciona tu lista desde esta primera fila (títulos) hasta el último registro en ella. Continúa resaltando este rango para que futuros registros (por si se agregaran) se incluyan en la Tabla dinámica.
Manténla seleccionada.
2.- Pulsa el botón en "insertar" encontrado en la barra del menú principal y selecciona "Tabla dinámica".
3.- Una ventana pide seleccionar la fuente de los datos. Marca "Lista o base de datos de MS Excel".
4.- Si hubieras dejado tu rango seleccionado, se asumirá ésta como la base de datos fuente. En caso contrario, puedes seleccionar el área en este paso.
Allí también le indicas dónde quieres ubicarla.
5.- Verás que donde te dejó el Diseño en blanco
Y se mostrarán los títulos de las columnas disponibles. Verás, por ejemplo, en tu caso:
6.- El próximo paso depende de ti, porque esto es muy "personalizable". Sólo tienes que arrastrar etiquetas al área donde quieres que ellas sean mostradas.
Por ejemplo:
- Arrastra la etiqueta "Seleccionado" al área de Filtros.
Con esto hasta te ahorras el formulario porque allí te deja disponibles todas las opciones de selección
- Arrastra las etiquetas "nombre", "apellido" y "centro" al área de FILAS.
Con botón derecho del mouse sobre ellas, podrás quitarles los subtotales que suele colocar.
- Opcionalmente, podrías arrastrar la etiqueta "APELLIDO" al área de los VALORES
Esto es para que los cuente.
(Nota: otras funciones posibles sobre campos numéricos son:
Contar
Promedio
Min
Max
Producto
Contar Números
Desvest
Desvestp
Var
Varp)
Así conseguirás una tabla donde podrás mostrar sólo los casos seleccionados.
Verás en la parte superior de la primera imagen un botón que dice "Diseño del informe", que sirve para modificar el formato de tu tabla. Como viene con autoformato, yo suelo cambiar a Formato Tabular, pero puedes dejarlo como mejor te luzca.
Aparte de lograr lo que querías, contar con una tabla dinámica sobre una base sólida, te permite hacer un sinnumero de análisis y reportes, simplemente moviendo los campos disponibles a las areas de construcción.
Una ventaja adicional es que no es necesario repetir este procedimiento cada vez que cambien, se agreguen o quiten, datos de la base.
Bastará actualizar la tabla dinámica, con botón derecho del mouse sobre ella y eligiendo la opción "Actualizar datos"
Bien, más largo de explicar que de hacer, pero creo que vale la pena.
Espero que te haya ayudado.
Saludos
Fernando
(Buenos Aires, Argentina)