Jump to content

Maria_80

Members
  • Posts

    203
  • Joined

  • Last visited

  • Country

    Spain

Posts posted by Maria_80

  1. 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.

     

     

  2. 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. 

     

  3. 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.

     

  4. 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. 

  5. 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.

  6. 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. 

  7. 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!

  8. 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

  9. 12 minutes ago, Antoni said:

    Acostúmbrate a convertir a Date antes de operar con fechas desde celdas.

    Sub compara_fechas()
    With Worksheets("Hoja1")
       For i = 2 To .UsedRange.Rows.Count
          If CDate(Cells(i, "A")) < CDate(Cells(i, "B")) Then
             Cells(i, "C").Value = "menor"
          Else
             Cells(i, "C").Value = "mayor"
          End If
       Next
    End With
    End Sub

     

    Gracias por la solución, Antoni!


  10. 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

  11. 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

  12. 17 hours ago, Maria_80 said:

    Hola, Janlui. Muchísimas gracias! Estoy intentando probarlo, pero se me para aquí:  Workbooks.Open ("MILIBRO")

    Dice que no encuentra al libro para poder abrirlo. Tengo los dos libros guardados en la misma carpeta... 

     

    5 hours ago, Maria_80 said:
    17 hours ago, Maria_80 said:

    Hola @Janlui tengo una pregunta de tu código. Lo que envío siempre es un ejemplo, normalmente luego no tengo problemas para adaptarlo a lo mío.
    El caso es que no consigo modificar esta parte de tu código:

    DESTINO.Sheets(1).Range("B" & r & ":E" & r + R1 - 2)

    Piensa que pongo un ejemplo en pequeño, pero en realidad trato de copiar un rango que va desde B hasta AQ (por ejemplo), tengo que escribir esto así?


    DESTINO.Sheets(1).Range("B" & r "C" & r "D" & r (etc...) & ":AQ" & r + R1 - 2)

    Intento ponerlo como "B:AP" & ":AQ" pero no funciona

    Gracias

    Expand  

    lo tengo Janlui... me ha salido con ":AQ" ;).

  13. 12 hours ago, Maria_80 said:

    Hola @Janlui tengo una pregunta de tu código. Lo que envío siempre es un ejemplo, normalmente luego no tengo problemas para adaptarlo a lo mío.
    El caso es que no consigo modificar esta parte de tu código:

    DESTINO.Sheets(1).Range("B" & r & ":E" & r + R1 - 2)

    Piensa que pongo un ejemplo en pequeño, pero en realidad trato de copiar un rango que va desde B hasta AQ (por ejemplo), tengo que escribir esto así?


    DESTINO.Sheets(1).Range("B" & r "C" & r "D" & r (etc...) & ":AQ" & r + R1 - 2)

    Intento ponerlo como "B:AP" & ":AQ" pero no funciona

    Gracias

  14. On 9/12/2021 at 12:24 AM, Janlui said:

    Espero sea lo que estas buscando:

    Sub ordena_id()
        r = 2
        i = 2
        Id = Cells(r, 1)
        
        Do While Cells(r, 1) <> ""
            If Cells(r, 1) <> Id Or Cells(r + 1, 1) = "" Then
                If Cells(r + 1, 1) = "" Then
                    k = 0
                Else
                    k = 1
                End If
                Range("A" & i & ":e" & r - k).Select
                ActiveWorkbook.Worksheets("Secuencia_Dos").Sort.SortFields.Clear
                ActiveWorkbook.Worksheets("Secuencia_Dos").Sort.SortFields.Add2 Key:=Range( _
                    "D" & i & ":d" & r - k), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
                    xlSortNormal
                With ActiveWorkbook.Worksheets("Secuencia_Dos").Sort
                    .SetRange Range("A" & i & ":e" & r - k)
                    .Header = xlGuess
                    .MatchCase = False
                    .Orientation = xlTopToBottom
                    .SortMethod = xlPinYin
                    .Apply
                End With
                i = r
                Id = Cells(r, 1)
            End If
            r = r + 1
        Loop
        Range("a1").Select
    End Sub
     

     

    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
     

  15. 10 minutes ago, Maria_80 said:

    Hola, Janlui. Muchísimas gracias! Estoy intentando probarlo, pero se me para aquí:  Workbooks.Open ("MILIBRO")

    Dice que no encuentra al libro para poder abrirlo. Tengo los dos libros guardados en la misma carpeta... 

    Janlui, al final me ha funcionado escribiendo la ruta completa y el nombre del fichero ;). Muchísimas gracias!!!

  16. 2 hours ago, Janlui said:

    PRUEBA ESTO.

    Sub TRASLADA()
        mes = (InputBox("Ingresar número de mes", "Formato: 1,2,3..."))
        Dim ORIGEN, DESTINO As Workbook
        Set ORIGEN = ThisWorkbook
        
        Sheets(1).Select
        Range("A1").Select
        R1 = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
        
        Sheets(2).Select
        Range("A1").Select
        R2 = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
        
        Workbooks.Open ("MILIBRO")
        Set DESTINO = ActiveWorkbook
            
            Sheets(1).Select
            r = 2
            Do While Cells(r, 2) <> ""
                r = r + 1
            Loop
            
            DESTINO.Sheets(1).Range("B" & r & ":C" & r + R1 - 2) = ORIGEN.Sheets(1).Range("A2:B" & R1).Value
            r = 3
            Do While Cells(r, 2) <> ""
                If Cells(r, 1) = "" Then
                    Cells(r, 1) = mes
                End If
                r = r + 1
            Loop

            Sheets(2).Select
            r = 2
            Do While Cells(r, 2) <> ""
                r = r + 1
            Loop
            
            DESTINO.Sheets(2).Range("B" & r & ":C" & r + R2 - 2) = ORIGEN.Sheets(2).Range("A2:B" & R2).Value
            r = 3
            Do While Cells(r, 2) <> ""
                If Cells(r, 1) = "" Then
                    Cells(r, 1) = mes
                End If
                r = r + 1
            Loop

    End Sub

    Hola, Janlui. Muchísimas gracias! Estoy intentando probarlo, pero se me para aquí:  Workbooks.Open ("MILIBRO")

    Dice que no encuentra al libro para poder abrirlo. Tengo los dos libros guardados en la misma carpeta... 

  17. 2 minutes ago, Maria_80 said:

    Gracias! Ahí lo adjunto. Es el mismo libro de antes, solo que con tu cambio y acabo de hacer lo que me has dicho poniendo un 6 en el inputbox. Los datos exportados aparecen en el libro destino MILIBRO, pero el 6 del inputbox no se marca en la primera columna. Tampoco lo encuentro en el libro que te adjunto, por si se estuviera grabando erróneamente en otra parte...

     

     

    eJ_MODIFICARXLS.xlsm 20.88 kB · 0 downloads

     

    Milibro.xlsx

  18. 8 minutes ago, Janlui said:

    Ejemplo... si pones mes 6, donde debe de poner la información en Milibro... puedes hacer esto manual con el mes 6 y subir este archivo?

     

    Gracias! Ahí lo adjunto. Es el mismo libro de antes, solo que con tu cambio y acabo de hacer lo que me has dicho poniendo un 6 en el inputbox. Los datos exportados aparecen en el libro destino MILIBRO, pero el 6 del inputbox no se marca en la primera columna. Tampoco lo encuentro en el libro que te adjunto, por si se estuviera grabando erróneamente en otra parte...

     

     

    eJ_MODIFICARXLS.xlsm

  19. 10 minutes ago, Janlui said:

    Checa este cambio:

            filas = Range(Selection, Selection.End(xlDown)).Rows.Count
            For i = 2 To filas
                If Worksheets("Hoja1").Cells(i, 1) = "" Then
                Worksheets("Hoja1").Cells(i, "A").Value = mes
                End If
                 
                 
                 If Worksheets("Hoja2").Cells(i, 1) = "" Then
                 Worksheets("Hoja2").Cells(i, "A").Value = mes
                 End If
             Next
     

    Gracias, Janlui! Pues ahora ya no se me para ;). Pero no rellena nada en la columna mes (A) del libro destino. Ya sabes, lo que escribo en el inputbox. Algo se me escapa...no sé qué es.

  20. Hola,

    Tengo un fichero donde hice una macro para exportar los datos de las Hojas 1 y 2  a otro libro. Los copia desde la columna A y en el libro destino se pegan a partir de la B. Hasta ahí todo bien.

    Luego vía InputBox desde esa macro añado el mes a la columna A de ese libro destino pero se me para aquí:

    For i = 2 To .UsedRange.Rows(.UsedRange.Rows.Count).Row

    Funciona perfectamente si ejecuto ese código para modificar en el mismo libro, pero no para hacerlo en uno externo.

    Dice que no admite esa propiedad o método. He probado de muchas maneras pero no doy con la solución. Os adjunto un fichero de ejemplo (al final de la macro después de exportar los datos de la hoja 1 y 2 estaría el código donde me salta el error). 

    Mil gracias de antemano.

    eJ_MODIFICARXLS.xlsm


  21. Hola, 

    Estoy intentando vía InputBox rellenar con el dato introducido una columna. Pero no consigo que lo haga desde la primera fila libre de A.

    Sería pegar el dato a partir de la primera celda libre de la columna A (está en verde), en función del Nº de filas de la columna B

    No consigo modificarla y se pega desde el comienzo. 

    Podéis echarle un vistazo? La macro está en el ejemplo.

    ¡Muchísimas gracias!
        

    ej_InputBox.xlsm

×
×
  • Create New...

Important Information

Privacy Policy