Foro de Ayuda Excel | ||
| Soluciona tus problemas con Excel |
| | |||||||
| Registrarse | Preguntas Frecuentes | Lista de Foreros | Calendario | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
| | LinkBack | Herramientas | Desplegado |
|
#1
| |||
| |||
| Hola amigos, Tengo esta gran duda pues no conozco una función adecuada para lo que estoy buscando. Se trata de un archivo en donde en una hoja se capturan las facturas pendientes de pago de mi empresa constructora. Cada factura tiene su fecha, no. factura, beneficiario, concepto, importe, etc., y LA OBRA A LA QUE SE CARGA. Lo que quiero es que desde otra HOJA que corresponde a una obra determinada, se jalen automáticamente las facturas que correspondan a esa obra. Pero que se jalen todos los elementos de esa factura: no. factura, beneficiario, concepto, importe, etc., tal y como fue capturada en la hoja de captura, es decir, toda la fila. Una vez que jaló la fila de una factura, que continúe jalando la que sigue en la fila de abajo, sin repetir valores. Les adjunto un archivo de ejemplo con algunas explicaciones por si no fui suficientemente claro en este texto. Espero me puedan ayudar, si necesitan mas información estaré pendiente de sus preguntas. |
|
#2
| |||
| |||
| Hola JorgeV Te adjunto una (dos) opción con filtros avanzados. La primera consiste en mantener una hoja por cada obra. El filtro se activa en cada hoja mediante una macro de evento que se ejecuta al actiavr la hoja (Worksheet_Activate). La segunda opción te permitiría tener sólo la hoja maestra y la de consulta (más la del listado de obras, ésta se actualiza en automático si se introduce una nueva obra). AL seleccionar la obra en la lista de validación te aparecerán todos los datos de la maestra referidos a dicha obra. Tú mismo. Un saludo desde Vitoria. |
|
#3
| |||
| |||
| Estimado ioyama, Mil gracias, es exáctamente lo que buscaba. Necesito analizar un poco más estas dos opciones para poder entenderlas y aplicarlas en el futuro para mayor personalización o futuros proyectos. ¿Me podrías decir que tema en específico debo de buscar para estudiarlo y comprenderlo? Si tienes algun recurso o vínculo te lo agradecería mucho. Gracias de nuevo! |
|
#4
| |||
| |||
| He estado buscando por mi cuenta y leyendo tutoriales acerca de macros y vba. Asi tambien he estado tratando de entender la macro que aplicaste en el archivo que amablemente me mandaste. Sería de gran ayuda si alguien me ayuda a entender estas líneas, sobre todo el comando "uf y uff" que no logro encontrar que función tienen. Private Sub Worksheet_Activate() uf = Sheets("Facturas").Range("A65536").End(xlUp).Row uff = Range("A65536").End(xlUp).Row If uff > 4 Then Range("A5:N" & uff).ClearContents Sheets("Facturas").Range("A3:N" & uf).AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:N4"), Unique:=True End Sub Gracias. |
|
#5
| |||
| |||
| Hola Jorge V, voy a tratar de interpretarte el código del master ioyama Private Sub Worksheet_Activate() uf = Sheets("Facturas").Range("A65536").End(xlUp).Row uff = Range("A65536").End(xlUp).Row If uff > 4 Then Range("A5:N" & uff).ClearContents Sheets("Facturas").Range("A3:N" & uf).AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:N4"), Unique:=True End Sub uf y uff son dos variables locales distintas (por decirlo de alguna manera una variable es un espacio en la memoria) las variables pueden tomar distintos valores a lo largo del procedimiento, y tu puedes recuperar su valor en cualquier momento, a las variables tu les colocas el nombre que quieras, VBA se encarga de la dirección física real en la memoria (exiten cietas reglas para nombrar variables, ademas de distintos tipos de variables...) Entonces uf se esta utiliazando para almacenar el Número de fila de la útima fila con datos de tu hoja "Facturas", lo que hace el procedimiento es ir a la hoja de facturas, seleccionar la celda ("A65536") y a través de la propiedad .End (xlup) determinar la última fila con datos .Row Range.End (propiedad) Devuelve un objeto Range que representa la celda situada al final de la región que contiene el rango fuente. Equivale a presionar las teclas FIN+FLECHA ARRIBA, FIN+FLECHA ABAJO, FIN+FLECHA IZQUIERDA o FIN+FLECHA DERECHA. Objeto Range de sólo lectura. lo puedes probar manualmente para que veas que hace... uff se esta utiliazando para almacenar el Número de fila de la útima fila con datos de tu hoja donde esta grabado el código, lo que hace el procedimiento es ir a tu hoja dónde esta guardado tu código ejemplo "Obra Yucatan", seleccionar la celda ("A65536") y a través de la propiedad .End (xlup) determinar la última fila con datos .Row luego se evalua si hay datos más alla de la fila cuatro (en tu hoja dónde se grabo el código ejemplo "Obra Yucatan"), si es asi se limpia su contenido... Luego a tu hoja "facturas" se le esta aplicando un filtro avanzado (metodo) con los parametros que ahi estan especificados (copiar valores, criterios, copiar al rango, y valores unicos) saludos |
| Herramientas | |
| Desplegado | |
| |