Ir al contenido principal

Guardar un Libro de Excel cuando se cambia una celda particular.

A veces, puedes estar trabajando en datos que son tan sensibles que querrás salvar cada vez que se cambie una celda o rango de celdas en particular. Esta macro te permite definir el rango de celdas que, cuando se cambian, obligan al libro a guardarse.

Cómo funciona?

El secreto de este código es el método Intersect. Debido a que no queremos guardar la hoja de cálculo cuando se cambia alguna celda antigua, usamos el método Intersect para determinar si la celda de destino (la celda que ha cambiado) se cruza con el intervalo que hemos especificado como el rango de disparo (C5: C16 en este caso).

El método Intersect devuelve una de dos cosas: un objeto Range que define la intersección entre los dos rangos dados o nada. Así que en esencia, necesitamos lanzar la celda objetivo contra el método Intersect para comprobar el valor de Nothing. En ese momento, podemos tomar la decisión de si guardar el libro o no.

Private Sub Worksheet_Change(ByVal Target As Range)

'Paso 1:  Comprueba si la celda cambiada se cruza con el rango especificado
    If Intersect(Target, Range("C5:C16")) Is Nothing Then
    
'Paso 2: Si no se cruza, entonces exit
    Exit Sub

'Paso 3: Si se cruza, guarde el libro
    Else
    ActiveWorkbook.Save

'Cierre del If
    End If

End Sub


Comentarios

Entradas populares de este blog

Calculadora para Conversión de Tasas de Interes

Valor Futuro de una Suma Presente

Análisis de Sensibilidad: Tablas de Datos