Copiar datos en hojas y libros según condición

Muy buen día.
Mi pregunta es la siguiente:
Tengo una hoja de calculo que contiene (utilizando el mismo formato, respetando las columnas) una serie de datos pertenecientes a un cliente en particular, quisiera trasladar esa información a otras hojas, pero el formato en el que se presentan los datos puede hacer que bajen de una fila a otra, e incluso puede que se agreguen clientes.
¿Existe una forma de hacer una macro que busque un dato en la columna A:A y que se le pueda decir que copie el rango de B:B solo dos filas más abajo y poner como limite 10 filas de copia. Por ejemplo cuando "0154" este en A10, bajar tres filas y copiar desde B13 hasta B23 y C13 hasta C23 y sucesivamente con las búsquedas de otros clientes según código?
Disculpen lo extenso de la pregunta ;)
Gracias por adelantado.

1 Respuesta

Respuesta
1
La macro es esta pero con los datos que tu has puesto si cambian las filas tendrás que cambiarlo en la macro:
Sub Busca_Copia_Pega()
'Introduces el cliente
dat = InputBox("Escribe el Cliente", "PREGUNTA")
'Seleccionamos la columna A que es donde estará el valor
Range("A:A").Select
'Evitamos un error si el valor buscado no existe
On Error Resume Next
'Buscamos el valor en el rango seleccionado
Selection.Find(What:=dat, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
'Nos situamos 3 filas mas abajo
ActiveCell.Offset(3,0).Select
'Seleccionamos desde la celda contigua hasta 10 filas de la segunda columna
Range(ActiveCell. Offset(0,1), ActiveCell.Offset(9,2)).Select
'Copiamos el rango seleccionado
Selection. Copy
'Nos posicionamos en la Hoja2
Sheets("Hoja2").Select
'En la celda activa pegamos lo seleccionado
ActiveCell. PasteSpecial
'Fin de la macro
End Sub
Espero que te sirva
>Un saludo
>Julio
Hola Julio muchísimas gracias por tu aporte lo pondré a prueba mañana a primera hora, pero te hago una consulta sobre esta misma macro, yo genere una con la grabadora de macros, pero he aquí el problema, este fichero en particular proviene de una base de datos y PUEDE ojo, PUEDE (osea que hasta el momento nadie me ha confirmado 100%) que varíe.
Pudiera ser que la macro buscara el valor por ejemplo "0154" luego en la misma columna buscara "fact. mensual" y copiara las dos celdas adyacentes (a su derecha) o en su defecto el rango de 8 columnas hacia abajo a la derecha de la segunda búsqueda.
Se que suena complicado pero es que el archivo lo es.
Si tienes algún otro aporte seria genial.
Un saludo.
Y mill gracias de antemano.
Jose
Tampoco importa, en el inputbox te pedirá que pongas el dato a buscar, pues pones el que necesites, si esta en la columna A no tendrás que modificar nada hasta esa linea, no te entiendo como tienes que buscar dos valores diferentes en la misma columna, o bien te interesa uno o el otro para tu búsqueda (al estar en la misma columna se puede prescindir de uno de ellos) y luego el desplazarte por las columnas o filas es indiferente tan solo necesitas la referencia a la celda del valor buscado, que quieres copiar las dos celdas adyacentes pues bien Range(ActiveCell. Offset(0,1), ActiveCell. Offset(0,2)). Select y si lo que quieres es copiar el rango de 8 filas hacia abajo Range(ActiveCell. Offset(0,1), ActiveCell. Offset(7,2)). Select
>Un saludo
>Julio
Se trata de dos condiciones, pero ya encontré una manera gracias a la solución que me proporcionaste en gran parte.
La modifique para que buscara los valores por si mismos ya que son demasiados clientes para que los procese con el input box y le modifique el paste para que no pegara todo, sino solo el contenido, así me ignora unos errores de color, fuente y demás detalles que vienen del archivo raíz.
Muchas gracias Julio por tu respuesta.
Un saludo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas