Excel viene provisto con un mecanismo para controlar el tipo de datos permitidos en un rango: Validación de datos. La herramienta controla el tipo de datos ingresado, es decir, constantes (números, fechas, texto), pero no evitará que el usuario ingrese una fórmula en el rango validado.
Este problema se me presentó cuando estaba desarrollando un formulario para ingresar datos de gastos
Este tipo de formularios basados en hojas de Excel requieren poco esfuerzo para construirlos. Los valores permitidos para cada uno de los campos están controlados con Validación de datos; los botones en la parte inferior permiten pasar los datos a otra hoja que hace las veces de base de datos; las filas y columnas innecesarias están simplemente ocultas.
El problema es que validación de datos no impide que una fórmula sea ingresada en las celdas de la columna Monto
Para evitar esto tenemos que usar un evento. En el módulo de la hoja correspondiente ponemos este código
Private Sub Worksheet_Change(ByVal Target As Range)
If Union(Target, Range("rngMonto")).Address = Range("rngMonto").Address Then
If Target.HasFormula Then
Target.ClearContents
MsgBox "Solo valores, no formulas!"
End If
End If
End Sub
Al introducir un valor en el rango Monto, se dispara el código que evalúa si se trata de una fórmula con la propiedad HasFormula. En caso positivo el contenido de la celda (target) es borrado y aparece el mensaje informando que no está permitido introducir fórmulas.
Este video muestra el funcionamiento de la validación
ERDA QUE BIEN
ResponderBorrar