Jump to content

Macro copiar con un criterio ??


Recommended Posts

Sub copiar()


With Worksheets("hoja1").Range("L2:R" & Range("L2").End(xlDown).Row).ClearContents
End With
Application.ScreenUpdating = False

'inicializo la variable j
J = 2

    'comienzo el bucle
    For i = 2 To Range("A65536").End(xlUp).Row
        'compruebo que el valor  sea mayor que 0
        If Cells(i, "R").Value = 0 Then
            'copio la fila entera y la pego
            Range(Cells(i, "L"), Cells(i, "R")).Copy Destination:=Sheets("hoja1").Cells(J, "A")
            'aumento la variable j para que vaya a la siguiente fila de la hoja filtros
            'cuando encuentre una nueva fila que cumple con la condición de mayor que cero
            J = J + 1
        End If
    Next

End With


Application.ScreenUpdating = True


End Sub

te dejo ese código a ver si te funciona solo modifica tus nombres de tus hojas

saludos

Link to comment
Share on other sites

Me da error en End With

De todas formas no entiendo varias cosas en la macro

No ve diferenciar entre hoja origen y destino, solo hay Hoja1

Si el rango a copiar es L:R, esta orden en la macro 

Range("A65536")

Se refiere a la hoja de la copia ???

Salud2...

 

Link to comment
Share on other sites

Hace 19 horas, eugeniocol dijo:

Me da error en End With

De todas formas no entiendo varias cosas en la macro

No ve diferenciar entre hoja origen y destino, solo hay Hoja1

Si el rango a copiar es L:R, esta orden en la macro 


Range("A65536")

Se refiere a la hoja de la copia ???

Salud2...

 

Hola

Llevas un buen tiempo por aqui y no subes archivo, ademas consultas sobre supuestos rangos

 

Saludos 

Link to comment
Share on other sites

Y coloca la pregunta en todos los foros en castellano, a pesar de que ya le hemos dicho que no es necesario ya que varios somo usuarios concurrentes de varios de esos foros.

Un poco de paciencia y lectura le vendrían bien a nuestro amigo. OJO, no es deseo de no ayudarlo, al contrario, que se ordene un poco para que sea más fácil hacerlo.

Abraham Valencia

Link to comment
Share on other sites

Perdon por la tradanza.

Pensaba que era sencilla la explicaion sin mas.
Bueno subo libro.
Hoja 1 datos a copiar.
Hoja2 destino de copia con criterio >0 en R.
Hoja2,Boton MACRO encontrada en san google funciona Ok, pero cuando la meto a rango 150.000 se eterniza en tiempo de ejecucion.

Un Saludo.

Foro copia con criterio.xlsm

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Guest
This topic is now closed to further replies.
  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 30.00 EUR
      Objetivo: 130.00 EUR
  • Files

  • Download Statistics

    • Files
      144
    • Comments
      87
    • Reviews
      25

  • Crear macros Excel

  • Posts

    • Mil gracias, Sergio Esto es otra cosa....jejeje Bueno, María, pues a ver si lo puedes probar y me dices.   Proyectos Estándares.zip
    • Debes tener una hoja con el nombre Resultado, si la quieres cambiar, modifica la línea resaltada en la macro. Colócate en la hoja donde tienes los datos a combinar antes de ejecutar la macro,  Sub Combinar() Application.ScreenUpdating = False '------------------------------------------------------------ With Sheets("Resultado") '<-- Nombre de la hoja del resultado '------------------------------------------------------------ columnas = Cells(1, 1).End(xlToRight).Column .Cells.Clear Cells(1, 1).Resize(1, columnas).Copy .Cells(1, 1) Cells(1, 1).Resize(1, columnas).Copy .Cells(1, columnas + 1) fila = 1 For Z = 2 To Range("A" & Rows.Count).End(xlUp).Row For x = Z + 1 To Range("A" & Rows.Count).End(xlUp).Row fila = fila + 1 Range("A" & Z).Resize(1, columnas).Copy .Cells(fila, 1) Range("A" & x).Resize(1, columnas).Copy .Cells(fila, columnas + 1) Next Next .Select End With Application.StatusBar = False End Sub  
    • @tese1969, por favor, prueba de nuevo. He hecho algunos ajustes.
    • Hola a todos de nuevo, ya he encontrado el fallo y lo he resuelto. Era un problema con los limites de manejo de datos  en el array inicial al ir pasando de un grupo a otro. Estaban mal definidos. Ahora ya funciona correctamente. Lo comento para que no dediquéis más tiempo a este tema. Ya esta resuelto y como decía en el mensaje anterior ahora el macro es 50 veces más rápido que el original. Por curiosidad lo he probado con una hoja con 5000 grupos (más de 200000 filas implicadas). Con el macro original le cuesta unas 4 horas de completar, con el nuevo unos 5 minutos. Para las simulaciones que quiero hacer es un cambio brutal. Os dejo el archivo por si alguien tiene curiosidad. Muchas gracias por vuestro tiempo y atención. PermutaDatosGrupos_D_arr_RESUELTO.zip
    • Hola Antoni, Después de varios intentos para conseguir correr la macro, no sé por qué me daba problemas, la he corrido y funciona bien. Tan solo que la primera fila del rango, donde están los títulos de los campos también se combinan, por lo que tengo que quitarlos a mano posteriormente, ¿se puede hacer una modificación de algunos de los parámetros para que no se incluya los títulos de los campos en la combinatoria del rango? y por otra parte se ¿pueden copiar el nombre de las columnas del rango como encabezado del nuevo rango?. Con un rango de 3 columnas y 4 filas se hace a mano en un plis-plas, pero con decenas de columnas y filas ya es más rollo. Por otra parte ¿es difícil que el nuevo rango se cree en otra hoja del libro en lugar de en la misma hoja? para así evitar tener que copiarlo en otra hoja para trabajar con los nuevos datos. Abajo incluyo un pantallazo de correr la macro con un rango de 3 columnas y 5 filas. Muchas gracias por todo Antoni. Lo que me has enviado me viene muy bien. Si no es difícil ni te lleva mucho tiempo realizar las modificaciones que te comento te agradecería que en un huequito que tengas libre las desarrollaras, así sería mucho más fácil para mí utilizarla. Gracias de nuevo.  
  • Recently Browsing

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

Privacy Policy