Está en la página 1de 12

Macro Buscar un valor >= a y copiar fila completa a otra hoja

por cuatro05 09 Jun 2010 01:08

Buenas, en principio soy nuevo en el foro y por la recorrida que pegu hay mucha gente que sabe de esto, por lo que me animo a consultarles si es posible realizar la siguiente macro. Por empezar tengo una planilla en la cual se detallan los siguientes datos detallados en diferentes columnas en la Hoja1. Legajo - Empleado - Inicia - Tipo - NomTipo - Das - Finaliza - Concepto - Fecha de Carga Lo que necesito es que busque en la columna Das los valores >= a 15 y que me copie todas las filas completas donde se encuentren los valores que cumplan esa condicin a la Hoja2 a partir de la celda A2 hacia abajo. Espero haber sido explicito en la consulta. Gracias de antemano.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
cuatro05 Miembro Frecuente

Registrado: 09 Jun 2010 00:54

A r r i b a

Re: Macro-Buscar un valor >= a y copiar fila completa a otra


por mipega62 09 Jun 2010 11:23

una primera aproximacion Sub encuentraycopia() Sheets("Hoja1").Activate With Range("1:1") Set d = .Find("Das", LookIn:=xlValues, LookAt:=xlWhole) If Not d Is Nothing Then d.Activate Else End End If End With ulren = Cells(1040000, ActiveCell.Column).End(xlUp).Row

For Each a In Range(Cells(1, ActiveCell.Column), Cells(ulren, ActiveCell.Column)) a.Activate If Val(a.Value) >= 15 Then a.EntireRow.Copy Destination:=Sheets("Hoja2").Range("a1048576").End(xlUp).Offset(1, 0) End If Next End Sub 'se ubica en la llamda "hoja" 1 del libro actual.. tambien se puede usar sheets(1) 'buscara solo en el renglon 1 suponiendo que aahi estan los titulos de las columnas 'busca la columna llamada "Das", con acento y sin espacios a los lados 'en caso de que si se encontro la columnma 'se ubica en la celda donde se encontro el titulo 'en caso de no encotrar el titulo 'termina 'determina el ultimo renglon con valores sobre la columna encontrada 'para cada celda de la columna encontrada con datos 'si el valor de la celda es mayor o igual a 15 se usa la funcion val por si en esa columna hay valores de texto 'copia todo el renglon a la hoja denominada "hoja2" 'siguiente celda del rango 'termina ela rutina una ves mas espero que te sea util y si alguien mas aporta otar solucion mas eficiente
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa

mipega62 Miembro Frecuente

Registrado: 14 Abr 2007 06:55 Ubicacin: Co.. Roma, Mexico D.F

A r r i b a

Re: Macro-Buscar un valor >= a y copiar fila completa a otra

por Potter2K10 09 Jun 2010 12:51

Hola a ver que tal este codigo.


CDIGO: SELECCIONAR TODO

Sub Copiar() Dim Nmr On Error Resume Next Set Nmr = Application.InputBox("Valor a Copiar...", Type:=8) Application.ScreenUpdating = False Pnmr = Nmr.Value i = 1 Nmr.Select Sheets(4).Range("A2:K2000").ClearContents While ActiveCell.Value <> "" If ActiveCell.Value >= Pnmr Then Selection.EntireRow.Copy Destination:=Sheets(4).Range("A2").End(xlUp).Offset(i, 0) ActiveCell.Offset(1, 0).Activate i = i + 1 Else ActiveCell.Offset(1, 0).Activate End If Wend Application.ScreenUpdating = True End Sub

Salu2.xls
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Potter2K10 Miembro Frecuente

Registrado: 21 Dic 2009 14:04

A r r i b a

Re: Macro-Buscar un valor >= a y copiar fila completa a otra

por cuatro05 09 Jun 2010 18:05

Hola Potter2K10. Me sali el siguiente error cuando introduzco el valor a buscar

Esperemos tenga solucin, muchas gracias por tu tiempo.


* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
cuatro05 Miembro Frecuente

Registrado: 09 Jun 2010 00:54

A r r i b a

Re: Macro-Buscar un valor >= a y copiar fila completa a otra


por Potter2K10 09 Jun 2010 18:16

lo que pasa es que el inputbox esta seteado para que el valor lo tome de una celda por ejemplo si tiene el valor en a1=15 seleccionas A1 y le das aceptar. por si quieres que el valor que selecciones de una celda sea el >= si fuese 20 tendria que seleccionar en la columna dias el valor a copiar. Si no te funciona adjunta un archivo ejemplo con tu informacion y asi lo resolvemos.

Salu2.xls
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Potter2K10 Miembro Frecuente

Registrado: 21 Dic 2009 14:04

A r r i b a

Re: Macro-Buscar un valor >= a y copiar fila completa a otra


por cuatro05 09 Jun 2010 18:32

Ahora si funcion, pero como resultado me da todas las filas que contienen 31 das, no se por que. los que tienen entre 15 y 30, no copia las filas. Te adjunto un archivo ejemplo.
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje. * Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
cuatro05 Miembro Frecuente

Registrado: 09 Jun 2010 00:54

A r r i b a

Re: Macro-Buscar un valor >= a y copiar fila completa a otra


por cuatro05 09 Jun 2010 23:09

Muchas gracias mipega62 Encontr mas interesante la manera en que lo plante Potter2K10. Por otra parte no estaba completo el tuyo (no quiere decir que no sirva, aprend mucho de lo que expusiste) y por eso opt por seguir con el de Potter. Repito mi gratitud a tu tiempo robado. Un abrazo grande des de Argentina.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
cuatro05 Miembro Frecuente

Registrado: 09 Jun 2010 00:54

A r r i b a

Re: Macro-Buscar un valor >= a y copiar fila completa a otra


por Potter2K10 10 Jun 2010 00:14

Hola cuatro05, te adjunto el archivo con la macro modificada a ver si te parece de esta manera. el cambio creo que sera mas funcional si introduces el valor mayor que deseas copiar.

cualquier cosa estamos a la orden

salu2.xls
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje. * Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Potter2K10 Miembro Frecuente

Registrado: 21 Dic 2009 14:04

A r r i b a

Re: Macro-Buscar un valor >= a y copiar fila completa a otra


por cuatro05 10 Jun 2010 17:50

Espectucular, no solo anda bien, sino que mejoraste la consulta. Te agradezco mucho, me salvaste horas de trabajo semanal. Un abrazo grande.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
cuatro05 Miembro Frecuente

Registrado: 09 Jun 2010 00:54

A r r i b a

Re: Macro-Buscar un valor >= a y copiar fila completa a otra


por cuatro05 10 Jun 2010 18:59

Copio la macro debajo por si a alguien le sirve lo que cre el Sr. Potter2k10. Super mi consulta a mas no poder.

Sub Copiar() Dim Nmr As Integer On Error Resume Next Dim Mensaje, Titulo Mensaje = " Introduzca un nmero " ' Establece el mensaje. Titulo = "Demostracin de InputBox" ' Establece el ttulo. Nmr = InputBox(Mensaje, Titulo) Application.ScreenUpdating = False Range("F2").Select 'Selecciona la celda donde empieza a buscar i=1 Sheets(2).Range("A2:K2000").ClearContents While ActiveCell.Value <> "" If ActiveCell.Value >= Nmr Then 'Condicin: si el valor de la celda es mayor o igual al valor introducido en el Inputbox Selection.EntireRow.Copy Destination:=Sheets(2).Range("A2").End(xlUp).Offset(i, 0) 'Copia la celda al destino especificado ActiveCell.Offset(1, 0).Activate i = i + 1 'Selecciona la prxima celda a pegar la fila siguiente Else ActiveCell.Offset(1, 0).Activate End If Wend Application.ScreenUpdating = True End Sub

Todos los puntos al Sr. Potter2k10


* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
cuatro05 Miembro Frecuente

Registrado: 09 Jun 2010 00:54

A r r i b a

Re: Macro-Buscar un valor >= a y copiar fila completa a otra

por jespinola 11 Jun 2010 09:57

Hola, perdn la intromicin pero quise jugar yo tb. en alguna ocacin me ocurri el mismo problema, pero la cantidad de datos que deba copiar era muy grande. me result mas practico filtrando la tabla original. le hice la modificacin al cdigo de Potter, que lo encontr genial, pero ajustado a un filtro: Sub Copiar2() Dim Nmr As Integer On Error Resume Next Dim Mensaje, Titulo Mensaje = " Introduzca un nmero " ' Establece el mensaje. Titulo = "Demostracin de InputBox" ' Establece el ttulo. Nmr = InputBox(Mensaje, Titulo) Application.ScreenUpdating = False Range("F2").Select 'Selecciona la celda donde empieza a buscar Selection.AutoFilter ActiveSheet.Range("$A$1:$I$20").AutoFilter Field:=6, Criteria1:=">=" & Nmr, Operator:=xlAnd Range("A1").Select Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.End(xlToRight)).Select Selection.Copy Sheets("Hoja2").Select Range("A1").Select ActiveSheet.Paste Range("A1").Select Sheets("Hoja1").Select Range("A5").Select Application.CutCopyMode = False Selection.AutoFilter Application.ScreenUpdating = True End Sub

saludos, Jespnola
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa

jespinola Miembro Frecuente

Registrado: 09 Abr 2010 10:32

A r r i b a

Re: Macro-Buscar un valor >= a y copiar fila completa a otra


por Potter2K10 11 Jun 2010 12:11

Hola jspinola, me parece muy buen aporte el tuyo solo le hice una modificaion para hcer el rango dinamico asi se pueden agregar mas datos y siempre funciona el filtro sin tocar la macro.
CDIGO: SELECCIONAR TODO

Sub Copiar2() Dim Nmr As Integer On Error Resume Next Dim Mensaje, Titulo Mensaje = " Introduzca un nmero " ' Establece el mensaje. Titulo = "Demostracin de InputBox" ' Establece el ttulo. Nmr = InputBox(Mensaje, Titulo) Application.ScreenUpdating = False Range("F2").Select 'Selecciona la celda donde empieza a buscar Ufila = Sheets(1).Range("A" & Cells.Rows.Count).End(xlUp).Row ' cuentar la filas de la base Selection.AutoFilter ActiveSheet.Range("$A$1:$I" & Ufila).AutoFilter Field:=6, Criteria1:=">=" & Nmr, Operator:=xlAnd Range("A1").Select Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.End(xlToRight)).Select Selection.Copy Sheets("Hoja2").Select Range("A1").Select ActiveSheet.Paste Range("A1").Select Sheets("Hoja1").Select Range("A5").Select

Application.CutCopyMode = False Selection.AutoFilter Application.ScreenUpdating = True End Sub


* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Potter2K10 Miembro Frecuente

Registrado: 21 Dic 2009 14:04

A r r i b a

Re: Macro-Buscar un valor >= a y copiar fila completa a otra


por jespinola 11 Jun 2010 13:35

Hola Potter, estuve revisando, y al parecer no es necesario identificar el rango pues al momento de realizar el filtro, determina automaticamente el total de filas de la tabla. por otra parte, es necesario si, borrar la informacin de la hoja2 antes de copiar los datos filtrados. mira el cdigo a continuacin:.. Sub Copiar3() Dim Nmr As Integer On Error Resume Next Dim Mensaje, Titulo Mensaje = " Introduzca un nmero " ' Establece el mensaje. Titulo = "Demostracin de InputBox" ' Establece el ttulo. Nmr = InputBox(Mensaje, Titulo) Application.ScreenUpdating = False Sheets("hoja2").Select Cells.Select Selection.ClearContents Sheets("Hoja1").Select Range("F2").Select 'Selecciona la celda donde empieza a buscar Selection.AutoFilter Field:=6, Criteria1:=">=" & Nmr Range("A1").Select Range(Selection, Selection.End(xlDown)).Select

Range(Selection, Selection.End(xlToRight)).Select Selection.Copy Sheets("Hoja2").Select Range("A1").Select ActiveSheet.Paste Range("A1").Select Sheets("Hoja1").Select Range("A5").Select Application.CutCopyMode = False Selection.AutoFilter Application.ScreenUpdating = True End Sub

saludos, jespinola.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
jespinola Miembro Frecuente

Registrado: 09 Abr 2010 10:32

A r r i b a

Re: Macro-Buscar un valor >= a y copiar fila completa a otra


por Potter2K10 11 Jun 2010 14:41

En efecto Jespinola tienes razon no me percate de eso a la hora de ver el codigo. Muy bueno.

Salu2.xls
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Potter2K10

Miembro Frecuente

Registrado: 21 Dic 2009 14:04

A r r i b a

Re: Macro-Buscar un valor >= a y copiar fila completa a otra


por cuatro05 12 Jun 2010 10:31

Hoy lo pruebo jespinola y opino. Muchas gracias por su tiempo y por compartir conocimientos, potter como siempre presente!. Saludos desde Arg.

También podría gustarte