Excel - Una macro para copiar / pegar un rango seleccionado

Problema

Tengo un resumen de los datos por mes en una hoja y los datos sin procesar en otra hoja. En lugar de crear varias hojas de trabajo para mis datos sin procesar para cada mes, quiero borrar los datos del mes anterior y reemplazarlos con datos nuevos. Para hacer esto, tendré que copiar las fórmulas que crearon el resumen en otra columna (para el nuevo mes) y luego copiar y pegar el valor de los datos del resumen del mes actual (por lo tanto, una vez que los datos sin procesar de origen hayan cambiado, no cambiaría mi valores allí).

Ejemplo

 ABCD Ene Feb Mar Abr 1 5 6 7 

Me gustaría que mi resultado final se pareciera (es decir, copiar desde A3: A6 y pegar en B3. Luego, el próximo mes se copiará desde B3: B6 y pegar en C3, y así sucesivamente).

 ABCD ene feb mar abr 1 1 5 5 6 6 7 7 

Enero y febrero son iguales en este momento porque la copia y el pegado se realizarán antes de que se reemplacen los nuevos datos sin procesar.

Espero que tenga sentido. Tengo muy poco conocimiento al escribir VB, pero puedo leer y entender los sencillos. ¿Alguien podría ayudarme con una macro que haga esto automáticamente?

Solución

Esta macro utiliza un cuadro de entrada para preguntar qué mes está actualizando. Utilice valores numéricos en lugar de escribir en el mes. Ejemplo: Jan. = 1, Feb. = 2, Mar. = 3. Supongo que no querría actualizar enero, por lo que la macro se cerrará si se escribe 1 en el cuadro de entrada (a menos que se actualice desde diciembre, entonces podemos cambiar eso).

Espero que esto ayude.

 Sub Update_Month () Dim answer As Variant Dim jj = 3 answer = InputBox ("¿En qué mes está actualizando?" & VbCrLf & _ "Ex: January = 1, February = 2, March = 3, etc.") Seleccione la respuesta del caso Caso 1 Salir Sub Caso 2 para j = Rango 3 a 6 ("B" & j) = Rango ("A" & j) Siguiente j Caso 3 Para j = Rango 3 a 6 ("C" & j) = Rango ( "B" & j) Siguiente j Caso 4 Para j = 3 a 6 Rango ("D" & j) = Rango ("C" & j) Siguiente j Caso 5 Para j = 3 a 6 Rango ("E" & j ) = Rango ("D" & j) Siguiente j Caso 6 Para j = 3 a 6 Rango ("F" & j) = Rango ("E" & j) Siguiente j Caso 7 Para j = 3 a 6 Rango (" G "& j) = Rango (" F "& j) Siguiente j Caso 8 Para j = 3 a 6 Rango (" H "& j) = Rango (" G "& j) Siguiente j Caso 9 Para j = 3 A 6 Rango ("I" & j) = Rango ("H" & j) Siguiente j Caso 10 Para j = 3 a 6 Rango ("J" & j) = Rango ("I" & j) Siguiente j Caso 11 Para j = Rango 3 a 6 ("K" & j) = Rango ("J" & j) Siguiente j Caso 12 Para j = Rango 3 a 6 ("L" & j) = Rango ("K" & j) Siguiente j End Select End Sub 

Tenga en cuenta que

Gracias a WutUp WutUp por este consejo en el foro]

Artículo Anterior Artículo Siguiente

Los Mejores Consejos