Jump to content

Maria_80

Members
  • Posts

    210
  • Joined

  • Last visited

  • Country

    Spain

Everything posted by Maria_80

  1. mil gracias! va fenomenal! Lo acabo de conseguir resolver también así, incluyendo lo tuyo dentro de lo mío, por si os sirve: For col = LBound(ValorAnterior, 2) To UBound(ValorAnterior, 2) valor1 = RangoTrabajo(contador) 'acual valor de la celda(después cambio) valor2 = ValorAnterior(fila, col) 'anterior valor de la celda (antes cambio) 'si difieren entonces lanzamos mensaje If valor2 = "KO" And valor1 <> valor2 Then Dim c As Range For Each c In Target If c = "OK" Then c.Offset(0, 1) = "SI" Else c.Offset(0, 1) = "" End If Next MsgBox "celda modificada" 'Columna C, celda de al lado = "SI" End If contador = contador + 1 Next col Next fila
  2. Gracias, Fran. Voy a ver si consigo adaptarlo dentro del código que envío solo con el Offset(0,1). Necesito comprobar que ese OK es siempre después de un KO. Si el campo está en blanco y alguien escribe OK o, si ya existe un OK y alguien reescribe el OK de nuevo, al lado va a figurar "SI". Y ando buscando que ese SI se haga siempre cuando al OK precede un KO. Intento adaptar al código que envío y os cuento. gracias!
  3. Hola, Tengo una macro dentro del código de la Hoja1 donde con worksheet_change cada vez que una celda de la columna B cambia de KO a OK aparece un msgbox diciendo que la celda ha sido modificada. Hasta ahí todo bien. Pero lo que quiero es que si eso sucede en vez de que aparezca un msgbox con ese aviso (es algo que he puesto de forma provisional) el valor de la celda de al lado (columna C) sea igual a “SI”. El caso es que no sé cómo referirme a la celda de al lado dentro del bucle que comprueba si la celda ha sido modificada de KO a OK. ¿Alguna idea? Muchas gracias de antemano. EJ_modificarcelda.xlsm
  4. Muchas gracias, Antoni! Pensaba que tenía que ir llamando todo el rato hasta el final. Gracias!!!
  5. Hola, He preparado un ejemplo muy básico para haceros una consulta sobre el bucle Do While - Loop Tengo una hoja donde hay una serie de datos en la primera columna (en el ejemplo he puesto 6 registros). El bucle de esa primera macro es así: Do While Not IsEmpty(Sheets("Hoja1").Range("A2")) Call borrar Loop MsgBox "FIN" Lo que hace la macro borrar es eliminar el registro A2 de la hoja y luego volver a llamar a la primera macro. El problema es que cuando ya no hay datos en A2 de Hoja1 y se supone que tiene que salir del bucle y terminar con el msgBox de “FIN”, éste, se repite 6 veces, por tantos registros como datos había en la columna 1. ¿cómo puedo solucionarlo? ¿Y que al salir del bucle porque ya no hay datos el msgbox de Fin solo se haga una vez? No entiendo que una vez que ha salido se repita todas esas veces. mil gracias. Bucle_borrar.xlsm
  6. perfecto, Janlui. Me sirvió en la comprobación de la C. Gracias!
  7. Hola, Necesito diferenciar en macro el cero que devuelve el BuscarV del 0 como dato que se devuelve en algunas celdas (son cantidades). El caso es que la macro va bien, pero no consigo hacer la diferencia, no lo reconoce. Me devuelve igual “no encuentra” tanto si es un cero como valor, como un campo en blanco porque en el buscarv no hay nada. ¿alguna idea? Gracias ESERROR_ej.xlsm
  8. Necesitaba resolver el ejemplo 2 como el 1, son exactamente iguales. Solo que en el 2 los datos que se ven están en un filtro. En todas mis respuestas he dicho que los datos no van a la ligera a la hoja Destino. He puesto un código muy sencillo, lo he explicado paso a paso. En el asunto he dicho que quería saber solo "cómo pasar los datos filtrados" nada má. Pero eso no se ha entendido desde el principio. al final lo he solucionado añadiendo a mis lógicas algo tan sencillo como esto: Sheets("salida").Range("A2").EntireRow.Hidden = False vamos! comprobar que no esté oculta la celda que nos queremos llevar a hoja Destino. Yo escribo, pero luego leo esto y pienso que nadie se ha molestado en leer mis anotaciones, porque en ninguna parte aparece algo así. En cualquier caso, ya lo he solucionado yo. Muchas gracias Antoni. Una ves concentradas en Destino, se deberan ordenar por Referencia e intercalarlas 1 Salida, 1 Entrada... etc.
  9. Gracias, Gerson. Volví a probar pero tampoco me dio resultado. De todos modos, esto NO es así: Una ves concentradas en Destino, se deberan ordenar por Referencia e intercalarlas 1 Salida, 1 Entrada... etc. no es tan fácil, ahora entiendo que Janlui no diera con el resultado. No puedes traerte todo a Destino y luego reordenar allí, eso también podría haberlo hecho yo. He puesto esto de ejemplo tal y como he dicho varias veces, pero las entradas y las salidas no van de cualquier manera a Destino. Anteriormente puse esto: " En mi código dice si la celda B de hoja destino es una Entrada entonces vete a hoja salida y tráeme otro registro... pero y si le digo? si celda B de hoja destino es una entrada (y además sucede X cosa) tráeme otra entrada... " En cualquier caso, añadiendo esto a mi código, casi lo tengo: Sheets("salida").Range("A2").EntireRow.Hidden = False Muchas gracias.
  10. Hola, Gerson. Pues es que solo se mueven todas las salidas de golpe tanto si filtras a mano como si no y todos las referencias de producto a la vez de salidas. No es el ejemplo 2.. no sé... pensaba que la pregunta era clara y tendría fácil solución. El código de mi ejemplo es super sencillo y lo he explicado paso a paso en la macro. En el ejemplo 1 funciona y en el ejemplo 2 es exactamente igual solo que los registros están filtrados. Comienzo siempre con una salida y luego se van alternando (una entrada, una salida... hay condiciones) hasta que ya no quedan datos en las hojas. Primero para Referencia 1 (filtrada). La idea es al terminar quitar el filtro y hacer lo mismo para referencia 2 (como en el ejemplo 1 que funciona). Gracias.
  11. Gracias Janlui, pero hay un orden entre salidas y entradas de cara a la hoja destino (no van a la ligera) y una serie de lógicas para ese orden (te lo comenté antes). Una vez más agradezco tu tiempo. Pero solo necesito poder resolver el ejemplo 2 como el 1 con el filtro aplicado. Lamento que no entendieras la pregunta pero no puedo formularla ya de mejor manera. He subido dos ejemplos. Gracias.
  12. Checa la hoja de entradas donde se queda un registro del código 1 pendiente de irse a la hoja Destino. Lamento el tiempo que te tomas Janlui, pero solo estoy preguntando si el ejemplo 2 puede resolverse como el 1 con los datos filtrados. Nada más. Me falla y necesito saber dónde. No voy a hacerte perder más el tiempo. O no se puede (que lo dudo) o lamento no haber formulado mejor la pregunta. Gracias.
  13. Gracias, Janlui... es que necesito resolver esto: error a la hora de llevarme datos filtrados a otra hoja. Los datos van a estar filtrados.
  14. Mi problema es el tema de llevarme entradas y salidas a la hoja Destino con un filtro... me gustaría saber si se puede resolver de esa manera. Ya lo tengo todo montado, salvo que me falla el filtro. No va a ser una entrada y luego y una salida... es un ejemplo que puse para poder preguntar lo del filtro (Asunto de la pregunta). Hay lógicas en medio y sé cómo meterlas con el código simple que he usado, pero no sabría cómo meter esas lógicas a lo tuyo y me confunde la columna D. Te pongo un ejemplo: En mi código dice si la celda B de hoja destino es una Entrada entonces vete a hoja salida y tráeme otro registro... pero y si le digo? si celda B de hoja destino es una entrada (y además sucede X cosa) tráeme otra entrada... Tengo todo eso montado con lógicas incluidas para que funcione del diez para un grupo de operaciones con mi código, pero no sabría añadir esas lógicas a lo tuyo. Podría resolverse lo mío con lo del filtro? Pq elimino registros ocultos? gracias.
  15. Hola, Janlui! Muchas gracias! Funciona perfecto. Sin embargo, adjunto un ejemplo, ahora tengo que adaptarlo a lo mío (piensa que no me traigo las E y las S de cualquier manera a la hoja destino, añado alguna lógica y entiendo cómo hacerlo con mi código y la idea de los filtros). Voy a intentarlo con lo tuyo porque va fenomenal, pero necesito entender esto: Cells(rd, 4) = k ¿qué significa ese 4? columna D? Es una columna vacía en todas las hojas... Gracias!
  16. Hola, buenas. Estoy con una macro para llevarme datos de dos hojas (salida y entrada) a otra llamada destino. En el ejemplo 1 que os adjunto, es para una referencia de producto y lo hace bien. Comienzo siempre con una salida y luego se van alternando (una entrada, una salida) hasta que ya no quedan datos en las hojas. El problema que tengo (ejemplo 2) es que si trato de hacer eso mismo con una referencia de producto filtrada en hojas salida y entrada no lo hace bien. Siempre me deja una entrada por copiar y borra registros de referencias ocultas. La idea del ejemplo 1 que me funciona es poder hacer esto para un listado de un montón de referencias de productos a la vez (ejemplo 2). De ahí que se me ocurriera lo del filtro (ahora mismo lo he puesto a mano para el ejemplo). Podéis echarle un vistazo? Gracias. Ej1_unareferencia.xlsm Ej2_variasreferencias.xlsm
  17. Hola, Tengo un problema de formato que no logro detectar a la hora de comparar dos fechas. (Si una es mayor o menor que otra) En el ejemplo hay dos líneas. La Fecha uno es menor que la fecha dos, sin embargo no lo detecta. En la segunda línea (aparentemente con el mismo formato) la fecha uno es menor que la dos y lo detecta. No encuentro dónde está el problema. Podéis echarle un vistazo? mil gracias! ej_comparar_fechas.xlsm
  18. Hola, tengo un libro con un botón para exportar datos a otro libro. El libro donde se exportan se crea automáticamente cada cambio de año en una carpeta dentro de la misma ruta del fichero. Así que para no andar modificando la macro de exportar cada año, he puesto esto: Set wbDestino = Workbooks.Open(ActiveWorkbook.Path & "\MICARPETA\NOMBRE " & Year(Now())) No funciona, dice que no encuentra el libro NOMBRE 2021. El fichero de destino se llama: NOMBRE 2021 (el nombre lo coge bien), si en vez de escribirlo así, pongo ..."\MICARPETA\NOMBRE 2021") lo hace sin problemas. Es posible hacerlo como se me ha ocurrido? o no se puede? Gracias! ejemplo_exportar.xlsm
  19. Gracias, Janlui! Me sirve! También se podría hacer así: Worksheets("Secuencia_dos").Range("B1").AutoFilter Field:=2, Criteria1:=("C"), Operator:=xlFilterValues With Sheets("Secuencia_dos") .UsedRange.Sort Key1:=.Columns("D"), Key2:=.Columns("C"), Header:=xlYes .Select End With
  20. Janlui, al final me ha funcionado escribiendo la ruta completa y el nombre del fichero ;). Muchísimas gracias!!!
×
×
  • Create New...

Important Information

Privacy Policy