Macro para copiar 2 rangos

Que tal fejoal
Tengo un pequeño problema tengo 2 hojas de trabajo en una tengo las ventas del 2001 dividió en meses y en otra tengo el 2002 dividido de igual forma el problemas es este necesito hacer una macro que me tome el mes en curso de cada hoja y me lo pegue en una tercera hoja me podrías ayudar con esta macro
Te agradecería mucho tu apoyo.

1 Respuesta

Respuesta
1
Me pregunto si realmente necesitas una macro para hacer esto, toda vez que podría resolverse con una fórmula de búsqueda. La ventaja es que no necesitarías ejecutar una macro cada mes, sino simplemente cambiar el "Mes en curso".
Si estuvieras de acuerdo, podrías usar "BUSCARV".
Para ello asumiré que:
- Las ventas del año 2001 están en un rango que definiste como Vtas2001, cuya primera fila tiene los nombres de los meses (Enero, Febrero, Marzo, etc) y en la primer columna existe un código que identifica cada venta (por ejemplo, Región)
De igual manera, las ventas del año 2002 están en un rango que llamaste Vtas2002, también con un código a la izquierda y los nombre de los meses en su primer línea (supongamos, fila 8 para ambas bases).
En tu tercer hoja, tendrás una columna ("B", por caso) con los mismos códigos de ventas que deseas mostrar y una celda que indicará el nombre del mes en curso (en C4, por ejemplo).
En este escenario (que podrás modificar según el diseño de tu propia página) coloca en la celda donde quieres mostrar el primer valor de venta del ejercicio 2001 (D9) la siguiente fórmula:
=BUSCARV($B9,Vtas2001,COINCIDIR($C$4,Hoja1!$B8:$U$8,0),0)
al lado para las ventas del 2002 (E9), coloca esta:
=BUSCARV($B9,Vtas2002,COINCIDIR($C$4,Hoja1!$B8:$U$8,0),0)
[Considera si sueles usar comas o punto y coma para separar argumentos de las funciones. Yo usé ","]
Asígnale el formato deseado y, luego, copia estas celdas y pégala en las restantes, una por cada una de las Ventas a mostrar.
Y explico:
<$B9> es la celda donde figura el código que ayuda a identificar la venta (si no tuvieses ninguno, puedes reemplazarlo por un número de orden, igual para ambos años)
<Vtas2001> (o Vtas2002) es el nombre de rango que creaste para la base de datos (para crearlos, ya sabes, "Insertar" | "Nombre" | "Definir" luego ingresa el nombre y define el rango que ocupa)
<COINCIDIR($C$4,Hoja1!$B8:$U$8,0),0)>
Esta función busca el número de columna donde se encuentra el nombre del mes (en la Hoja1) según el que hayas ingresado en la celda C4. De esta manera, cunado cambia el contenido de C4 cambiarán los valores de las fórmulas automáticamente.
<0>, es un argumento opcional que obliga a buscar el mismo código que se ingresó en B9, si este no existiera en la base de busqueda obtendrás un error #N/A (no existe)
Sinceramente, creo que esto es más eficiente que una macro (entendiendo por tal un código de Visual Basic a ejecutar cada vez que cambie el mes)
De todos modos, si insistes en que quieres una macro, deberías darme más precisiones, como por ejemplo de dónde toma los datos de cada mes (rangos), dónde debe colocarlos (dirección de la celdas), etc.
Sin embargo, creo que la fórmuladebería resolver tu pregunta. Si así fuera, agradeceré un comentario y que la finalices.
Aclarando qué entendí mal o qué faltó.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas