Copiar fila según criterio dado a un nuevo libro excel

Buen dia, quiero copiar ciertas filas que pueden contener criterios como, si es mayor a 2, de 2 a 4, menor a 100 etc, a un libro nuevo, pero que el usuario pueda modificar estos criterios y el libro donde se copiaran estos datos se guarde con la fecha actual.

Gracias

2 Respuestas

Respuesta
1

Puedes agregar una columna al final de cada fila, ¿para qué en ella se escriba el criterio?

¿El criterio aplica por fila o el mismo criterio aplica para todas las filas?

En tu ejemplo si es mayor a 2, ¿qué? ¿Si es a mayor a 2 una celda? ¿O la suma de algo?, puedes poner gráficamente varios ejemplos, con datos reales.

¿Una misma fila puede tener varios criterios?

Respuesta
1

Otra vez Shaveax,

Necesito que me aclares algunas cosas:

1. Quieres copiar las filas con Macros o con un procedimiento predefinido de excel.

2. No olvides siempre indicar que excel utilizas, creo que era 2010 en ingles pero no estoy seguro.

3. Si puedes explicarme un poco como tienes definidos los datos en la hoja, me ayudarías a planterte la respuesta mas acorde a lo que quieres.

oka. te explico.

Tengo excel 2010 en ingles y todo lo quiero hacer con macros y userform´s.

En un libro A (Book1) tengo una columna A con un encabezado en la celda A1, y datos que son insertados por el usuario de manera aleatoria del rango de celdas a2:a500 ejemplo :

Encabezado
dato 1
dato 2
dato 3
dato 4
dato 5
dato 6

Entonces lo que yo quiero hacer es que en un Userform tenga ciertas condiciones, como por ejemplo, que el usuario le pueda poner que si los datos son mayores a 2 por asi decirlo, que busque en la columna A, el dato que sea mayor a 2 y cuando lo encuentre corte toda la fila y lo pegue en un libro B (Book2) en la columna A y la primera fila que encuentre disponible de abajo hacia arriba.y que asi se vaya con los demás datos, y que al final le diga al usuario cuantos datos se copiaron.

Esto con el afán de reducir el peso del archivo original ya que pesa mas de 7mb. espero me de a entender ya que me urge ayuda con esto.

Gracias

Prácticamente lo que necesitas es que una macro te haga lo que en excel haría un Filter

Esto tiene sus complicaciones, por que tendría que escribir muchísimo código. Te daré el código mínimo indispensable que me parece que es el más practico cuando se trata de mucha información (mas de 10,000 registros). Hay otras formas pero menos efectivas y mas lentas.

Empecemos.

'Con este código, generas un autofiltro de la hoja y luego filtras según la criteria la info.

Range("A1").Select
Selection.AutoFilter
ActiveSheet.Range("A:C").AutoFilter Field:=1, Criteria1:=">3", _
Operator:=xlAnd, Criteria2:="<8"

Por ejemplo, en el código vamos a considerar que lainformación se encuentra en las columnas de la A a la C ("A:C"), si tu info esta en mas columnas, lo modificas.

Luego en Field, le digo que columna contiene los datos que validare la criteria. En este caso Field:=1, significa que buscará la criteria en la columna A.

Luego tenemos la Criteria, que en este caso filtraremos los datos mayores a 3 y menores a 8

Criteria1:=">3"

Criteria2:="<8"

Operator:=xland

Aquí puedes considerar en tu userform dos combobox de dos columnas y dos textbox, los combobox tendrían una lista de :

-es igual a, =

-es diferente a, <>

-es mayor que, >

-es mayor o igual que, >=

-es menor que, <

-es menor o igual que, <=

El combobox debe considerar en propiedades

BoundColumn 2

ColumnCount 2

ListWidths 35 pt, 0pt

Y en el textbox colocarían el valor.

Entonces cambiarías tu código asi:

xcriteria1= combobox1.value & textbox1.value

xcriteria2=combobox2.value & textbox2.value

El código con variables quedaría asi.

ActiveSheet.Range("A:C").AutoFilter Field:=1, Criteria1:=xcriteria1, _ Operator:=xlAnd, Criteria2:=xcriteria2

Ahora, para pegar la info en otro libro nuevo

Range("A:C").Select

Selection. Copy

Workbooks. Add

ActiveSheet. Paste

Espero que esto te haya servido, si quedan dudas, puedes seguir preguntando y te ayudo.

NO A LA EXPLOTACIÓN DE EXPERTOS: Los expertos en el foro, estamos para ayudarles a resolver sus dudas, consultas y servir como un asesor del trabajo que realizan. Los expertos no somos programadores gratuitos, ni hacemos el trabajo por ustedes, solo lo evaluamos y revisamos para darles las opciones mas adecuadas. Por favor, si lo que quieren es que hagamos el trabajo por ustedes, probablemente este no sea el foro indicado, ni yo sea el experto que necesitan.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas