Buscar y pegar datos por mes
Hola expertos:
Ante todo muchas gracias por la ayuda que prestan siempre en este sitio, en el cual soy nuevo.
¿Existe la posibilidad que me apoyen con un código que realice lo siguiente?
Tengo 2 libros de excel, uno es un reporte mensual y el segundo un concentrado anual por cliente, y necesito que la macro pueda:
1. En función del número correspondiente al mes colocado en un inputbox, entienda en que columna del concentrado anual, deberá colocar los datos del mensual.
2. A partir de la celda a2 del libro reporte mensual, buscar el dato en el libro del reporte anual, una vez localizada la fila que le corresponde a ese producto, tomar el dato de la celda C2 del reporte mensual e ingresarlo en su lugar según criterio de punto 1 del concentrado anual.
3. Continuar con el mismo procedimiento con el dato de A3, y así sucesivamente, hasta topar con una celda en blanco, que es cuando el proceso se detiene.
El dato a buscar es consistente, y el númro de productos es variable cada mes, por lo que la lista anual de ese cliente puede contener 100 productos, pero en un mes solo usar 10, y esos son los que se deben reflejar en el concentrado anual.
El tema es que se trata de más de 30 clientes cada mes con productos usados que pueden ser desde 2 o 3 hasta 2000 o más, por lo que deseamos automatizarlo.
He intentado a partir de códigos encontrados en internet, adaptarlos a esto, pero no lo he logrado y me urge tenerlo listo.
El último código que use es el siguiente, pero marca error 1004 (lo probé solamente en un mismo libro hojas 1 y 2, sin tomar en cuanta aún la parte del punto 1)
Cualquier apoyo u orientación se los agradeceré infinitamente.
Gracias y un saludo
Pitufo72.
Código:
Sub prueba1()
Dim buscado As Integer
Dim visitas As Integer
Worksheets("Hoja1").Select
Range("A2").Select
Posicion = 1
While ActiveCell.Value <> ""
buscado = ActiveCell.Value
Worksheets("Hoja2").Select
Range("A2").Select
While ActiveCell.Value <> ""
If ActiveCell.Value = buscado Then
Worksheets("Hoja1").Select
visitas = ActiveCell.Offset(0, 2).Value
Worksheets("Hoja2").Select
ActiveCell.Offset(0, 2) = visitas
End If
ActiveCell.Offset(1, 0).Range("A2").Select
Wend
Worksheets("Hoja1").Select
Posicion = Posicion + 1
Range("A2").Select
ActiveCell.Offset(Posicion - 1, 0).Range("A2").Select
Wend
End Sub
Ante todo muchas gracias por la ayuda que prestan siempre en este sitio, en el cual soy nuevo.
¿Existe la posibilidad que me apoyen con un código que realice lo siguiente?
Tengo 2 libros de excel, uno es un reporte mensual y el segundo un concentrado anual por cliente, y necesito que la macro pueda:
1. En función del número correspondiente al mes colocado en un inputbox, entienda en que columna del concentrado anual, deberá colocar los datos del mensual.
2. A partir de la celda a2 del libro reporte mensual, buscar el dato en el libro del reporte anual, una vez localizada la fila que le corresponde a ese producto, tomar el dato de la celda C2 del reporte mensual e ingresarlo en su lugar según criterio de punto 1 del concentrado anual.
3. Continuar con el mismo procedimiento con el dato de A3, y así sucesivamente, hasta topar con una celda en blanco, que es cuando el proceso se detiene.
El dato a buscar es consistente, y el númro de productos es variable cada mes, por lo que la lista anual de ese cliente puede contener 100 productos, pero en un mes solo usar 10, y esos son los que se deben reflejar en el concentrado anual.
El tema es que se trata de más de 30 clientes cada mes con productos usados que pueden ser desde 2 o 3 hasta 2000 o más, por lo que deseamos automatizarlo.
He intentado a partir de códigos encontrados en internet, adaptarlos a esto, pero no lo he logrado y me urge tenerlo listo.
El último código que use es el siguiente, pero marca error 1004 (lo probé solamente en un mismo libro hojas 1 y 2, sin tomar en cuanta aún la parte del punto 1)
Cualquier apoyo u orientación se los agradeceré infinitamente.
Gracias y un saludo
Pitufo72.
Código:
Sub prueba1()
Dim buscado As Integer
Dim visitas As Integer
Worksheets("Hoja1").Select
Range("A2").Select
Posicion = 1
While ActiveCell.Value <> ""
buscado = ActiveCell.Value
Worksheets("Hoja2").Select
Range("A2").Select
While ActiveCell.Value <> ""
If ActiveCell.Value = buscado Then
Worksheets("Hoja1").Select
visitas = ActiveCell.Offset(0, 2).Value
Worksheets("Hoja2").Select
ActiveCell.Offset(0, 2) = visitas
End If
ActiveCell.Offset(1, 0).Range("A2").Select
Wend
Worksheets("Hoja1").Select
Posicion = Posicion + 1
Range("A2").Select
ActiveCell.Offset(Posicion - 1, 0).Range("A2").Select
Wend
End Sub
1 Respuesta
Respuesta de Elsa Matilde
1