Jump to content

Maria_80

Members
  • Posts

    164
  • Joined

  • Last visited

  • Country

    Spain

Everything posted by Maria_80

  1. 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.
  2. 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
  3. 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!
  4. Hola, Gerson... no me funcionó quitando las comillas... yo creo que me equivoqué a la hora de definir la variable. Mil gracias.
  5. 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
  6. Hola, Antoni! Funciona de lujo para la Hoja1, y como siempre se entiende genial. Muchísimas gracias!!
  7. 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
  8. 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
  9. 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
  10. 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)
  11. 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.
  12. Hola, Mauricio. Intento copiar todas las filas donde hay datos en TBIS, nunca me había dado problemas. En este caso solo existe una fila, pero a veces hay más. Depende del día... no consigo solucionarlo. Es cierto que me selecciona toda la hoja pero nunca me había dado problemas.
  13. Hola, Estoy con algo muy básico, nunca he tenido problemas... pero me ha saltado de repente un error por primera vez donde no consigo encontrar qué sucede. Estoy intentado copiar los datos de la hoja TBIS en la primera fila libre de la hoja T. Es algo que hago a menudo, pero me he encontrado con un problema que nunca había visto. Error 1004. el área de copiado y pegado no tienen el mismo tamaño. Tienen el mismo número de columnas... y las cabeceras son iguales. He probado a limpiar todas las celdas vacías de cada hoja, por si ahí estuviera el problema pero no consigo verlo. Os adjunto un ejemplo. Gracias de antemano. ejemplo_copypaste.xlsm
  14. Mil gracias, Antoni! Era exactamente esto! Va perfecto.
  15. Hola, buenas. Os adjunto un ejemplo con una macro para copia la última fila de cada grupo de ID (primera columna) en la hoja 2, el caso es que me sale para poder ir añadiendo la primera columna y la que yo le indique, pero no sé cómo indicarle que me copie el registro completo. Había pensado en ir copiando todo el bucle por cada columna, pero cuando son 40 columnas o más, es un montón de código y se ralentiza mucho. ¿Alguna idea para acortarlo? Os he dejado el código de ejemplo en el fichero para que podáis verlo y probarlo. Muchas gracias! Ejemplo_lastrow.xlsm
  16. Antoni, mil gracias como siempre. Funciona de maravilla y se entiende super bien. Gracias!!!
  17. Hola, Estoy intentado numerar una columna una vez que la filtro por columna B, este código me funciona si no añado filtro, pero una vez que lo hago se me para y me dice que no coinciden los tipos… encontré aquí en el foro este código (es el que me ha servido para adaptarlo a lo que busco): Dim nFilas As Long Dim nFila As Long Dim i As Long nFilas = Cells(Rows.Count, 2).End(xlUp).Row nFila = 1 For i = 2 To nFilas + 2 If Cells(i, 2) = "" Then Cells(i, 3) = "" If Cells(i, 2).SpecialCells(xlCellTypeVisible) <> "" Then Cells(i, 3) = nFila nFila = nFila + 1 End If Next Me va de lujo si no filtro, pero se me para y dice que no coinciden los tipos al filtrar (os he dejado la macro en el fichero, podéis echarle un vistazo? Gracias de antemano. Ejemplo_filtro_.xlsm
  18. Qué sencillo y qué efectivo! Mil millones de gracias como siempre! Y funciona para todos los productos! ;).
  19. Mira, te lo adjunto con todas las modificaciones. Ahora no se me para, pero solo me rellena la fila dos del producto 1 como si ese fuera el primer ingreso. Al resto de condiciones le añadí (cpase <> 0) pero no entra en ellas... He estado investigando para que ejecute esto por cada grupo de productos de la columna 1, pero no encuentro la manera... Ej_Inventario - v2.xlsm
  20. Hola, Pampa. Primero muchas gracias por tu respuesta. Pegué el código dentro del mismo módulo, modifiqué lo de Hoja1 por Sheets("Inventario"). También probé ha dejarlo como Hoja1 por si acaso. He puesto arriba las variables que modificaste y no entendí muy bien si dentro de todas mis condiciones tengo que añadir al final esto (cpase = 0), pero se me para aquí... dice error definido por la aplicación u objeto... todavía no controlo tanto y no he sido capaz de adaptarlo. ¿Esto sería para un producto, verdad? Tendría que añadir luego otra cosa para que lo ejecute según van cambiando el grupo de productos de hoja Inventario2? Mil gracias. cfila1 = Hoja1.Cells(i, 1).Row
  21. Hola, Hice una macro para gestionar el stock de almacén. La tabla está ordenada por producto y por fecha. Con un condicional le digo que si la fila corresponde a una entrada y justo la anterior también, me ponga en la columna stock acumulado las unidades del día de hoy más las que figuran en el stock acumulado del día anterior. (si una salida... que lo reste, etc.). Hago lo mismo con el precio. Hasta ahí la macro me va bien. El problema es que no sé cómo añadir que para el primer registro de cada producto (que siempre es de entrada) ponga que el stock es igual a las Unidades de la misma fila. Como podéis ver en la tabla se queda en blanco, así que me arrastra el error hasta el final. ¿Alguna idea de cómo añadir esto a la macro? Os la he dejado en el fichero en Hoja “Inventario”. Por otro lado, en la pestaña Inventario 2, está la misma tabla pero con el listado de varios productos. Una vez que tenga lo anterior ¿Cómo añado que pase la macro para cada cambio de producto en columna A? Muchísimas gracias de antemano. Ej_Inventario.xlsm
  22. Lo terminé sacando así, por si lo necesitáis un día: Sub Rellenar() With Worksheets("Hoja1") Dim CurrValue As String Range("B1").End(xlDown).Select CurrValue = ActiveCell.Value For i = 2 To .UsedRange.Rows(.UsedRange.Rows.Count).Row Cells(i, "B").Value = CurrValue Next End With End Sub
  23. Hola, buenos días. Estoy con una macro para buscar el primer valor con dato en una columna (hasta ahí bien), el caso es que quiero que una vez que lo encuentre me rellene toda la columna con ese dato. Con lo que hice solo consigo que se copia una vez justo debajo, no encuentro el modo de que rellene la columna completa. Le podéis echar un vistazo? Mil gracias de antemano. ej_rellenar.xlsm
×
×
  • Create New...

Important Information

Privacy Policy