Jump to content

Error al llevarme datos filtrados a otra hoja


Go to solution Solved by Maria_80,

Recommended Posts

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

Link to comment
Share on other sites

15 minutes ago, Janlui said:

Recuerda, no debe de tener filtros las hojas de entrada y salida.

Espero te sirva

 

traslada a destino.xlsm 26.26 kB · 0 downloads

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!

Link to comment
Share on other sites

Just now, Janlui said:

Durante el proceso la uso para ordenar la secuencia de 1 salida, 1 entrada... al final la borro

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. 

Link to comment
Share on other sites

Just now, Janlui said:

En tu archivo inicial hoja Destino, observe que la fila 8 estaba escondida y pensabas que era error. chécalo

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.

Link to comment
Share on other sites

Te dejo este ejercicio:

1. Filtre la hoja de Salida con Código de Referencia=2

2. Despues ejecuta esta macro (Adaptada a este ejercicio

Sub jan()
    Sheets("salida").Select
    Range("a1").Select
    ActiveCell.Offset(1, 0).Select
    Do Until ActiveCell.EntireRow.Hidden = False
        ActiveCell.Offset(1, 0).Select
    Loop
    r = ActiveCell.Row
    If Cells(r + 1, 1) <> "" Then
        Range(Selection, Selection.End(xlDown)).Select
        Range(Selection, Selection.End(xlToRight)).Select
        Selection.Copy
    Else
        Range(Selection, Selection.End(xlToRight)).Select
        Selection.Copy
    End If
    
    Sheets("Destino").Select
    Range("A2").Select

    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("a1").Select
End Sub

------------------------------------------------------------

Espero esto ya te de una idea de como hacerlo.


 

Edited by Janlui
Link to comment
Share on other sites

11 minutes ago, Janlui said:

Lo mas sencillo es pasar primero todas las salida a Destino y posteriormente pasar las entradas, siempre y cuando sea el resultado del filtro que se encuentre aplicado.

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. 

Link to comment
Share on other sites

Preguntas:

1. Tu archivos tiene varias referencias tanto en entradas como en salidas?

2. Cada que corras la macro solo traera 1 referencia que hayas seleccionado? si fuera así, en lugar de filtrar pondriamos un inputbox y ahí le indicas que referencia quieres que traslado a Destino.

3. La hoja Destino se va a ir acumulando y en Entrada y salida esa referencia seleccionada la deberá de eliminar tanto de Entrada como en Salida? 

Link to comment
Share on other sites

3 hours ago, Gerson Pineda said:

@Maria_80

Si entiendo bien y en resumen deseas pasar lo que esta filtrado en Salida y Entrada a Destino, te adjunto una alternativa como solución, presiona "Actualizar destino" y listo

 

Saludos

Mover filas filtradas otra hoja_GP.xlsm 22.32 kB · 3 downloads

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.

 

Link to comment
Share on other sites

Hace 5 horas, Janlui dijo:

Hola Gerson.

Tengo entendido que las hojas de Entrada y Salida se trasladen a Destino y a la ves, borrarlos de su origen.

Estas Hojas pudieran estar filtradas o sin filtro.

Finalmente, una ves concentradas en Destino, se deberan ordenar por Referencia e intercalarlas 1 Salida, 1 Entrada... etc.

La parte de intercalar no la había captado

Adjunto de nuevo mi método

Espero ahora si, quede listo

 

Saludos!

Mover filas filtradas otra hoja_GP.xlsm

Link to comment
Share on other sites

4 hours ago, Gerson Pineda said:

La parte de intercalar no la había captado

Adjunto de nuevo mi método

Espero ahora si, quede listo

 

Saludos!

Mover filas filtradas otra hoja_GP.xlsm 20.16 kB · 0 downloads

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. 

 

Link to comment
Share on other sites

El problema María, es que no se entiende lo que pretendes hacer, porqué aunque tu lo creas, nunca has planteado desde cero cual es el problema.

Empieza otra vez, define el problema, explica que información tienes y que es lo que quieres obtener y deja que sean las personas que te puedan ayudar quienes decidan si se necesita un filtro, una macro, una fórmula o cualquier otro procedimiento para resolverlo. 🙂

 

Edited by Antoni
Link to comment
Share on other sites

  • Solution
6 minutes ago, Antoni said:

El problema María, es que no se entiende lo que pretendes hacer, porqué aunque tu lo creas, nunca has planteado desde cero cual es el problema.

Empieza otra vez, define el problema, explica que información tienes y que es lo que quieres obtener y deja que sean las personas que te puedan ayudar quienes decidan si se necesita un filtro, una macro, una fórmula o cualquier otro procedimiento para resolverlo. 🙂

 

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.

 

 

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Privacy Policy