Jump to content

Maria_80

Members
  • Posts

    176
  • Joined

  • Last visited

  • Country

    Spain

Everything posted by Maria_80

  1. Hola, tengo una macro que ordena por fecha solo los datos que se muestran en un filtro (columna B = C). El ejemplo está en la primera hoja (secuencia) y lo hace perfecto. Estoy intentando hacer lo mismo pero que ordene por cada grupo de Id distinto de la columna A. El ejemplo está en la segunda hoja (secuencia dos), pero no lo consigo. Se me ordena igualmente la tabla entera. ¿Podéis echarle un vistazo al código? Algo se me escapa. Hay una tercera hoja con una copia de la tabla de ejemplo porque cada vez que paso la macro me la cargo y así la copio de nuevo directamente. Gracias de antemano. Ordena_fecha.xlsm
  2. Hola @Antoni necesito reabrir este hilo para hacer una consulta sobre esta macro, es una adaptación. En Hoja1 (secuencia): Ordena por fecha solo las C de la columna B sin cambiar la posición de los registros que en columna B son igual a V. Eso ya está OK. Estoy intentando (Hoja2 - secuencia_dos) hacer lo mismo, pero para cada cambio en Id de la columna 1 por separado. Tengo varios ejemplos de otras veces, pero no termino de cuadrarlo (os lo pongo en el código). Se me ordenan las C y respeta la posición de las V, pero lo hace en toda la tabla y no para cada conjunto de ID (A y por separado. Hay una tercera hoja con una copia de seguridad de la tabla de la Hoja secuencia_dos ¿Podéis echarle un vistazo? ¡Gracias! Ordena_fecha.xlsm
  3. Hola, @Antoni al final lo conseguí ;). Directamente en la misma hoja y en la misma tabla. He modificado el código un poco: 'una vez que filtramos por C ejecuto la macro Sub OrdenarFiltro() Application.ScreenUpdating = False With Hoja1 .UsedRange.Sort Key1:=.Columns("C"), Key2:=.Columns("B"), Header:=xlYes .Select End With End Sub 'después quito el filtro y todo genial. Muchísimas gracias por la idea ;).
  4. Hola, Antoni. Muchas gracias... aunque me sigue pasando lo mismo, no sé si hay algo que no estoy haciendo bien (te adjunto el fichero con la macro) y una tercera hoja que he llamado "resultado" para que veas cómo tendría que quedar. El problema es que se me reordenan también las V y no solo las C... no sé si se puede hacer. Gracias. ej_ordenarfiltro.xlsm
  5. Hola, Gerson. He respondido donde @Antoni he puesto la tabla a la derecha para indicar cómo tendría que quedar. Pero puedes reordenar la misma tabla, pegarla en otro lugar, eso no importa. Intento ordenar datos visibles en una tabla conservando la posición de las filas ocultas, es ahí donde tengo el problema. Gracias!
  6. Hola Antoni, en realidad no importa si es en otra hoja o en otro rango, si es más fácil en otra hoja perfecto. Es que filtro por C y una vez filtrado lo ordeno de mayor a menor por fecha, pero al quitar el filtro ha reordenado también las V y ahí es donde tengo el problema. No sé cómo indicar que solo ordene los datos visibles... Muchísimas gracias
  7. Hola, ¿es posible ordenar dentro de una tabla solo por los datos que hay en un filtro? Ya sabéis, solo ordenar los datos visibles y el resto dejarlo tal cual. En este caso, filtro en la primera columna por la letra “C” y luego lo ordeno por fecha, pero se me reordenan igual las filas ocultas. ¿Alguna idea? He dejado justo al lado como tendría que quedar. ¡Mil gracias! ej_ordenarfiltro.xlsm
  8. Mil gracias, Antoni! Ya veo! lo estaba copiando y pegando en valores ;).
  9. Perdona Antoni, ahí va... están las dos macros en el módulo 1 (te las he explicado en la primera línea) Gracias!! ej_formatos.xlsm
  10. Hola, He modificado parte del código que tenía en una macro porque tenía un error a la hora de copiar y pegar. El primer código sirve para copiar y pegar celdas en otra hoja de varias líneas y el segundo corrige el error del primero y puedo pegar solo una línea. El segundo es lo que he modificado en mi macro para que no me salte error si solo copio y pego una línea (de un hilo que abrí y me solucionó @Antoni). No sé qué hago mal en el segundo... pero al pegar las celdas no conserva el formato de la hoja (fechas... números con dos decimales...). ¿Es lo normal y debería volver a darles formato después? Gracias! 1) CONSERVA EL FORMATO PERO NO PEGA SOLO UNA LÍNEA Sheets("hojaorigen").Activate Range(Range("C2"), Range("C2").End(xlDown)).Select Range(Selection, Selection.Offset(, 5)).Select Selection.Copy Sheets("hojadestino").Activate ActiveSheet.Paste Range("A" & Range("A" & Rows.Count).End(xlUp).Row + 1) 'Pegar los datos en la primera fila libre desde "A" 2) PUEDO PEGAR SOLO UNA LÍNEA PERO NO ME CONSERVA EL FORMATO DE SALIDA Sheets("hojaorigen").Range("C2:G" & Sheets("hojaorigen").Range("A" & Rows.Count).End(xlUp).Row).Copy Sheets("hojadestino").Range("A" & Sheets("hojadestino").Range("A" & Rows.Count).End(xlUp).Row + 1).PasteSpecial xlValues 'pegar datos en la primera fila libre desde A
  11. Hola, Adjunto un fichero con una macro para importar los archivos que hay dentro de una carpeta y consolidarlos. En su día me dio la idea @Antoni con un ejemplo de una macro de un inventario. El caso es que estoy intentando modificarla, para poder seleccionar directamente el archivo o los archivos que yo quiera de la carpeta, pero si modifico esto: msoFileDialogFolderPicker y porngo msoFileDialogFilePicker me deja seleccionar el archivo o los archivos que quiera, pero luego se me para aquí porque dice que no encuentra la carpeta: Set Carpeta = Archivos.GetFolder(NombreCarpeta) ¿alguna sugerencia? Gracias! Os adjunto el fichero con la macro que adapté en su día. Ej_importar.xlsm
  12. muchísimas gracias Antoni, había cogido la idea de separar por Id de otra macro tuya y no sabía terminar de desarrollarla. se entiende super bien, como siempre.
  13. Hola, Os adjunto una macro que me ayudasteis a resolver ayer buscando la última fila de un rango. El caso es que aunque no me da error, no funciona para cambio de Id en la primera columna. Otras veces siguiendo este método no he tenido problemas. Algo se me está escapando. Podéis pegarle una vuelta al código? debería quedar como en la columna C, pero al pasarle el código no distingue por Id. Muchas gracias de antemano. ejemplo_ult.xlsm
  14. Muchísimas gracias! Tengo que separar el tema del índice en la columna A, pero creo que no voy a tener problemas en hacerlo. Con lo que me pasas me sirve para comprobar la última fila y meterla en la condición. gracias!
  15. Hola, Gerson... no me funcionó quitando las comillas... yo creo que me equivoqué a la hora de definir la variable. Mil gracias.
  16. Hola, ¿Me podéis echar un cable revisando el código de esta macro? Estoy utilizando la variable Dim ult As Integer ult = Cells(Rows.Count, 1).End(xlUp).Row para poder meterlo en un condicional, pero se lo salta. No me da error, pero se lo salta. Es decir, si columna B > 1 then C = “mayor a uno” Si columna B > 1 and “ult” then C = "mayor a uno ult” Quiero llegar a la columna C de la Hoja 1, lo he puesto a mano, claro. Gracias de antemano. ejemplo_ult.xlsm
  17. Hola, Antoni! Funciona de lujo para la Hoja1, y como siempre se entiende genial. Muchísimas gracias!!
  18. Hola, buenas. Necesito una idea para programar una hoja de cálculo en un almacén. Sería convertir la hoja 1 en la hoja 2. No se me ocurre cómo hacerlo de la forma más práctica posible. Sin tener que crear hojas de compra y de venta e ir añadiendo movimiento por movimiento, calcular, comprobar, regresar a las hojas, etc. De ejemplo va un producto, pero tengo que hacerlo para muchos a la vez. Es como el método fifo, lo primero que entra es lo primero que sale. Ya tenía la macro montada, pero el problema es que hay veces que queda una remanente y entonces tengo que incluirla justo debajo como si fuese lo siguiente que entra para ir cuadrando. Tengo que seguir esta lógica para cada lote de productos hasta llegar a stock = 0. Os agradecería si me podéis dar alguna idea de cómo montar esto o de cómo empezar a hacerlo. Os lo he explicado todo en la hoja 2, los cálculos van con fórmulas (eso no me preocupa a la hora de programar), pero necesito alguna idea. Muchísimas gracias de antemano. Hoja_Control_Almacén.xlsm
  19. Hola, os dejo aquí una solución para lo que sería la Hoja1 por si le sirve a alguien, pero sí que me gustaría saber cómo resolver la hoja 2 para todos los Id con la fórmula sumar.si y conseguir el mismo resultado (ahora mismo solo hay uno porque necesito seleccionar toda la columna). Gracias. Sol_hoja1.xlsm
  20. Hola, necesito sumar de abajo hacia arriba una columna hasta la primera celda en blanco que encuentre, siempre y cuando sea una compra. El problema, es que tengo una tabla ordenada por Id con un conjunto de operaciones para cada cálculo individual. Lo he intentado solucionar de 2 maneras con fórmulas de Excel. La 1ª: Haciendo suma y agrupa (está en la Hoja1 del ejemplo). No me sirve porque para que funcione tengo que indicar un rango específico y el rango según el día que lance la macro puede cambiar. En La 2ª: Haciendo un SUMAR.SI (hoja2 del ejemplo). No me sirve por dos motivos, el primero es que solo se usarlo para un tipo de Id porque tengo que seleccionar toda la columna (como veis, no he añadido el resto de operaciones). Y, el segundo es porque no sé cómo añadir a esa fórmula que lo haga solo para las compras. Intento llevarme esto a VBA. En la hoja1 (columnas F y G) está cómo debería ser el resultado (no me sirve esa fórmula por lo que comenté del rango). Si no se puede hacer, pienso en otra cosa, pero me gustaría saber vuestra opinión. ¡Un millón de gracias! ejemplo suma hacia arriba.xlsx
  21. Gracias, Mauricio. Funciona perfecto. He probado con un registro, con varios, dejando la hoja T en blanco... va genial. ¿debería sustituir el anterior código por esto a partir de ahora en mis macros? Esto es más efectivo que lo anterior y si se da el caso de un registro no va a haber problemas. Sheets("TBIS").Activate uf = Cells(1, 1).SpecialCells(xlCellTypeLastCell).Row of = Sheets("T").Cells(Rows.Count, 1).End(xlUp).Row + 1 Range(Cells(2, 1), Cells(uf, 45)).Copy _ Destination:=Sheets("T").Cells(of, 1)
  22. Hola, Mauricio. Puede darse el caso de que exista solo una fila o de que existan muchos más a copiar dependiendo del día en el que lance la macro. Este es el primer caso que me encuentro donde solo existe un registro. Sigo aprendiendo esto de VBA pero quiero creer que ante este caso no tengo que añadir una excepción y existe otra solución. Pregunto aquí para pediros consejo y también para aprender. Sigo sin solucionarlo. Añadir una segunda fila no es la solución.
×
×
  • Create New...

Important Information

Privacy Policy