Macro para copiar y pegar registros

Hola experto, fíjate que tengo un problema con una macro, espero me puedas orientar.
Tengo un archivo, y quiero copiar y pegar ciertos registros en base a una condición del contenido de cada registro. Te pego mi código que he diseñado para explicarte y sea más fácil de darme a entender:
For i = 1 To 10000
Range("AE:AI").Select
If Range("AF" & i).Value = "Barrido a  231179003" Or Range("AF" & i).Value = "231179003" Then
Range("AE:AI").Rows(i).Copy
Range("AK7").Select
ActiveSheet.Paste
i = i - 1
End If
Next i
Como podrás ver es un código que quiero que copie registros que tengan en contenido "Barrido a 231179009" y "231179003", el problema que estoy teniendo es al momento de pegar los datos, en este caso los quiero pegar en la columna "AK"(en mi código puse AK7 como parámetro), pero al momento de ejecutar la macro no funciona apropiadamente, debido a que como en las columnas "AE:AI", tengo más registros de barrido y de 2311, pues no detiene, y sobre todo no se como definir para que una vez seleccionado el registro que contiene barrido o 2311, los vaya pegando esos datos en AK sin generar error como actualmente me está pasando con el código.
Espero haberme dado a entender, y espero me puedas ayudar a resolver esto.
Muchas gracias
Saludos
Toño

1 respuesta

Respuesta
1
Parece lógico el error y el resultado, aunque te funcionara correctamente siempre escribiría en la celda AK7 por lo tanto solo verías el ultimo valor pegado y habría sobreescrito todos los anteriores.
Me tienes que aclarar donde quieres pegar los valores si es desde la celda AK7 hacia abajo, porque entonces quedaría así:
For i = 1 To 10000
Range("AE:AI").Select
If Range("AF" & i).Value = "Barrido a  231179003" Or Range("AF" & i).Value = "231179003" Then
Range("AE:AI").Rows(i).Copy
Range("AK7").Select
If ActiveCell.Value="" Then
ActiveSheet.Paste
Else
ActiveSheet.Paste
End If
i = i + 1 ' He puesto + para que vaya aumentado hasta 10000 no - porque no pararía nunca
End If
Next i
Mira a ver si ahora te funciona.
>Un saludo
>Julio

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas