Impedir borrado de información en celdas. Objeto Application - Método OnKey

Ya vimos dos aplicaciones para el uso del Método OnKey del Objeto Application, con la primera cambiamos la instrucción de la tecla F1 que originalmente es para lanzar la ventana de Ayuda de Excel y la cambiamos por un mensaje. La segunda aplicación desahibilitamos la configuración de la tecla Bloq Num. En esta entrega vamos realizar una aplicación que puede ser de gran utilidad, se trata de impedir el borrado de las celdas que comúnmente se realiza con la tecla Suprimir y Delete.

Método OnKey: Permite manipular el teclado de nuestro computador desde el editor de VBA.

Desde Excel abrimos el Editor VBA (Alt + F11), insertamos un Módulo (Clic derecho sobre el proyecto Excel, Insertar, Módulo:

Damos doble Clic en el nuevo módulo y pegamos el siguiente código:

Sub NoTeclaSuprimir()

Application.OnKey "{CLEAR}", "Mensaje"

End Sub

Sub NoTeclaDelete()

Application.OnKey "{DELETE}", "Mensaje"

End Sub

Sub Mensaje()

MsgBox ("No esta permitido el borrado de celdas")

End Sub

Queda de la siguiente manera en la ventana de VBA:

Acá tenemos tres macros, la primera se llama NoTeclaSuprimir, la segunda NoTeclaDelete y la tercera Mensaje; veamos lo que significa cada línea de la macro 1

  1. La primera línea Sub NoTeclaSuprimir (), indica el inicio de la macro.
  2. En la segunda línea estamos utilizando del Objeto Application el método OnKey el cual se utiliza para activar y modificar cualquier tecla; en este caso estamos modificando la tecla Suprimir (CLEAR) para que al presionarla no se borre la información de la celda activa y en lugar de ello ejecute la macro llamada Mensaje que es la tercera que tenemos en el Modulo1.
  3. La última línea marca el fin (End) de la Macro o Subrutina (Sub)

Para la macro 2 llamada Saludo tenemos:

  1. La primera línea Sub NoTeclaDelete (), indica el inicio de la macro.
  2. En la segunda línea estamos utilizando del Objeto Application el método OnKey el cual se utiliza para activar y modificar cualquier tecla; en este caso estamos modificando la tecla Back Space, borrar (DELETE) para que al presionarla no se borre la información de la celda activa y en lugar de ello ejecute la macro llamada Mensaje que es la tercera que tenemos en el Modulo1.
  3. La última línea marca el fin (End) de la Macro o Subrutina (Sub)
  4. La primera línea Sub Mensaje(), indica el inicio de la macro.
  5. En la segunda línea estamos lanzando un mensaje de información sencillo con el uso de la función MsgBox.
  6. La última línea marca el fin (End) de la Macro o Subrutina (Sub)

Para que surja efecto esta modificación, primero ejecutamos desde el editor de VBA las macros 1 y 2:

Ahora, al presionar la tecla Suprimir o Delete no se podrá borrar la información y en lugar de ello aparecerá el siguiente mensaje:

Descargar archivo de trabajo.

MÁS SOBRE

Gerencie.com en su correo.

Suscríbase y nosotros colocaremos en su bandeja de entrada la mejor información que generamos diariamente.

Siéntase libre de opinar

En Gerencie.com está permitido opinar, criticar, discutir, controvertir, disentir, etc. Lo que no está permitido es insultar o escribir palabras ofensivas o soeces. Si lo hace, su comentario será rechazado por el sistema o será eliminado por el administrador. Por último, trate de no escribir en mayúscula sostenida, resulta muy difícil leerle.