El uso de macros para guardar libros de trabajo cuando se cambian las células
En Excel, puede estar trabajando en datos que es tan sensible que usted desea guardar cada vez que se cambia una celda particular o rango de celdas. Esta macro le permite definir un rango de celdas que, cuando se cambió, obliga al libro para salvar.
Video: Reto40Excel - Día 18 Macro en Excel para generar copia de Archivos automáticamente
En el ejemplo mostrado, desea que el libro para guardar cuando se realiza una edición de cualquiera de las células en el rango C5: C16.
Cómo funciona la macro
El secreto de este código es el método de intersección. Debido a que no desea guardar la hoja de cálculo cuando los cambios en las células viejas, que utilizan el método de intersección para determinar si la célula diana (la célula que ha cambiado) se cruza con el rango especificado como el rango de disparo (C5: C16 en este caso) .
El método Intersect devuelve uno de dos cosas: un objeto Range que define la intersección entre los dos intervalos dados, o nada. Así que en esencia, es necesario tirar la célula diana contra el método de intersección para comprobar si hay un valor de nada. En ese punto, puede decidir si desea guardar el libro de trabajo.
Private Sub Worksheet_Change (blanco de ByVal como gama) `Paso 1: ¿se cruzan el rango cambiar si Intersect (Target, Rango (?"C5: C16")) No es nada Then`Step 2: si no hay intersección, salida procedureExit Sub`Step 3: Si hay una intersección, guardar el workbookElseActiveWorkbook.Save`Step 4: Cierre la Sub Si statementEnd IfEnd
En el Paso 1, sólo tiene que comprobar para ver si la célula diana (la célula que ha cambiado) está en el intervalo especificado por el método Intersect. Un valor de nada significa la célula diana está fuera del rango especificado.
Paso 2 obliga a la macro para parar y salir del procedimiento si no hay intersección entre la célula diana y de la gama especificada.
Si hay una intersección, Paso 3 dispara el método Save del libro activo, sobrescribiendo la versión anterior.
En el paso 4, sólo tiene que cerrar la instrucción If. Cada vez que se inicia una comprobación de If-Then-Else, se debe cerrar el partido con un extremo correspondiente Si.
Cómo utilizar la macro
Para implementar esta macro, tiene que copiar y pegar en la ventana de código de evento Worksheet_Change. La colocación de la macro aquí permite que se ejecute cada vez que realice algún cambio en la hoja:
Activar el Editor de Visual Basic presionando ALT + F11.
En la ventana de proyecto, encontrar su nombre de proyecto / libro y haga clic en el signo más al lado de él para ver todas las hojas.
Haga clic en la lámina de la que desea activar el código.
En la lista desplegable de eventos, seleccione el evento Change.
Escribir o pegar el código en el módulo recién creado, el cambio de la dirección del rango para satisfacer sus necesidades.
Introduzca su código en el evento Hoja de Cambio.