-Como copiar un reglón de una hoja a otro hoja con una condición

Quiero hacer una botón que me copie todos el reglón de una hoja a otra hoja del mismo libro una vez que este en la primera celda del reglón aparezca facturado. Lo que he logrado es corta y pegar en la otra hoja, pero la macro se detienen cuando encuentra la primera condición y no tengo que volver a correrla. Dejo el codigó

Sub buscar()
filalibre = Sheets("hoja2").Range("m65000").End(xlUp).Row + 1
dato = InputBox("que dato buscamos???")
If dato = "" Then Exit Sub
Set buscado = ActiveSheet.Range("AN1:AN" & Range("m65000").End(xlUp).Row).Find(dato, LookIn:=xlValues, lookat:=xlWhole)
If Not buscado Is Nothing Then
ubica = buscado.Address
Do
buscado.EntireRow.Cut Destination:=Sheets("hoja2").Cells(filalibre, 1)
filalibre = filalibre + 1
Set buscado = ActiveSheet.Range("AN1:AN" & Range("m65000").End(xlUp).Row).FindNext(buscado)
Loop While Not buscado Is Nothing And buscado.Address <> ubica
End If
End Sub

1 respuesta

Respuesta
1

Le hice algunos ajustes:

Sub buscar()
'ajustada x Elsamatilde
filalibre = Sheets("hoja2").Range("A65000").End(xlUp).Row + 1
dato = InputBox("que dato buscamos???")
If dato = "" Then Exit Sub
Application.ScreenUpdating = True
Set buscado = ActiveSheet.Range("A1:A" & Range("a65000").End(xlUp).Row).Find(dato, LookIn:=xlValues, lookat:=xlWhole)
If Not buscado Is Nothing Then
Do
'se guarda la fila del dato encontrado
ubica = buscado.Row
buscado.EntireRow.Copy Destination:=Sheets("hoja2").Cells(filalibre, 1)
filalibre = filalibre + 1
Set buscado = ActiveSheet.Range("A1:A" & Range("a65000").End(xlUp).Row).FindNext(buscado)
Range("A" & ubica).EntireRow.Delete
On Error Resume Next
Loop While Not buscado Is Nothing And buscado.Row <> ubica - 1
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas