Pequeño error en macro

Estimado:
Por favor, estoy empezando en esto de las macros y he adaptado a un modulo una que recogí de una respuesta, pero se ejecuta pero con un pequeño problema
Se busca en la columna DE las celdas que tienen valor de "referido" y se pasan a la hoja REFERIDOS sin problema, pero las va pasando por partes, no todas al ejecutar la macro por lo que tengo que ejecutarla varias veces... Creo que es por la linea que la pasa a la siguiente fila en "ActiveCell.Offet(1,0).Select", pero si le quito esa fila se bloquea el el Excel
¿Podrías decirme la solución?
Sub mueveFila()
ActiveSheet.Range("D2").Select
'recorre la col A
While ActiveCell.Value <> ""
If ActiveCell.Value = "referido" Then
'si celda en col A = referido
fila1 = Sheets("REFERIDOS").Range("D65536").End(xlUp).Row + 1
Selection.EntireRow.Copy Destination:=Sheets("REFERIDOS").Range("A" & fila1)
Selection.EntireRow.Delete
End If
'pasa a la fila siguiente
ActiveCell.Offset(1, 0).Select
'repite el bucle
Wend
End Sub
De antemano muchas gracias
Gustavo

1 respuesta

Respuesta
1
Q+ Elranuza,
Sustituye tu código por este:
Sub mueveFila()
ActiveSheet.Range("D2").Select
'recorre la col A
While ActiveCell.Value <> ""
If ActiveCell.Value = "Referido" Then
'si celda en col A = referido
fila1 = Sheets("REFERIDOS").Range("D65536").End(xlUp).Row + 1
Selection.EntireRow.Copy Destination:=Sheets("REFERIDOS").Range("A" & fila1)
Selection.EntireRow.Delete
ActiveCell.Offset(-1, 0).Select
End If
'pasa a la fila siguiente
ActiveCell.Offset(1, 0).Select
'repite el bucle
Wend
End Sub
Muchas gracias por tu respuesta!.
Con el código que me pasas al ejecutar la macro recorre todas las filas pero no las pasa de una a otra hoja...
Lo que hice fue poner un evento change para que se ejecute la macro siempre que haya un cambio en alguna de las celdas de la hoja. Entonces cuando mueva una fila, al ser un cambio, ejecutará la macro otra vez hasta que ya no pueda mover más filas y deje de producirse el evento.
¿Qué aunque funcione igual es un poco rústico, no?
Porque igual hay una manera más fácil, porque es incómodo el estar haciendo alguna modificación en la hoja y que se esté ejecutando la macro ...
Si se te ocurre algo...
Gracias otra vez!
El ranuza
Q+ Ranuza
He probado el código y me funciona... pasa todos los referidos a la Hoja2 de un plumazo!
Te puedo enviar el ejemplo si lo deseas: [email protected]
Muchas gracias de antemano. Te envié un correo para que por favor me lo envíes y adaptar luego mi libro.
SAludos,
Gustavo, elranuza

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas