Copiar datos con tres condiciones excel vba

Agradezco por anticipación por brindar su valioso tiempo en responder.

Tengo un formulario como le muestro en la imagen y al seleccionar las condiciones del grado, sección y periodo, busque en la Hoja1 los datos y los copie a la hoja "REPORTE"

Como muestro en la segunda imagen.

RESULTADO ESPERADO

1 Respuesta

Respuesta
1

. 07/09/16

Hola, Adriel

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.

1.- Pulsa el botón en "insertar" encontrado en la barra del menú principal y selecciona "Tabla dinámica".

2.- Una ventana pide seleccionar la fuente de los datos. Marca "Lista o base de datos de MS Excel".

3.- 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.

4.- En el próximo paso, donde te dejó el Diseño y se mostrarán los títulos de las columnas disponibles. Verás, por ejemplo:

5.- 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 las etiquetas " grado", "seccion" y "periodo" 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 de alumno" y "docente" al área de FILAS.
Con botón derecho del mouse sobre ellas, podrás quitarles los subtotales que suele colocar.

- Arrastra la etiqueta "grado" al área de los VALORES

Esto es para que los cuente.

Así conseguirás una tabla donde podrás seleccionar esos tres campos

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)

Hola fejoal.

Como haces esta parte ya que en las columnas no veo "cant"

.

Hola, Adriel

Al armar la tabla y seleccionar la función a realizar en el sector Valores, ahi -donde dice "cant"- te aparecerá "Cuenta de grado". Luego, yo sobreescribí con "cant", para que quede más prolijo.

Si dieras botón derecho del mouse sobre la etiqueta y eligieras "configuración del campo" verás que puedes cambiarle el nombre, además de darle formato de número y otras opciones.

Espero que haya sido de ayuda para tu proyecto.

Abrazo

Fernando

.

H o la fejoal

no logro separar en columnas el ultimo cuadro cual serían los pasos

ALUMNO / DOCENTE / TOTAL 

.

Buenas,

Seleccionada la tabla, busca arriba, en el menú la pestaña Diseño. De la cantidad de diseños predeterminados, ve al final y elije Borrar.

Luego a la izquierda de la misma barra, selecciona estilo Tabular.

No estoy en una Pc, pero creo que podrás encontrarlo.

Es el auto formato que ahora MS asigna al crear las tablas.

Muy buen fin de semana

Fernando

.

Amigo fernando logré adaptar la tabla dinámica sugerida, pero tengo pensado ocultar las hojas posteriormente y generar este reporte en un PDF. es posible elabora la macro ? 

.

Buenos días, Adriel

Perfecto, me alegro de que hayas podido darle el formato apropiado.

Respecto a la generación del PDF, puedes usar esta simple macro para que lo haga.

Dependiendo del software que uses para crear pdf deberías incluirlo en la variable que dejé al inicio de la rutina:

Sub CreaPDF()
SalidaA ="Acrobat PDFWriter en LPT1:" 
'u otra opción:
'SalidaA = "doPDF v6 en DOP6:"
 ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:=SalidaA, Collate:=True
End Sub

Un modo práctico de saber qué poner en la variable SalidaA es usar la grabadora de macros (En pestaña "VISTA", botón "Macros" opción "Grabar Macros...") para generar un pdf cualquiera y ver a dónde envía la instrucción.

Sí tuvieras la tabla dinámica a reportar en una hoja distinta, tal vez no necesites ocultar las hojas ya que generarías el pdf sólo de la hoja activa.

Coméntame si te funciona ok.

Abrazo

Fernando

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas