No me gustan las hojas de cálculo porque no están escritas, cualquier celda puede tener un valor de cualquier tipo. Eso puede causar errores. Me gustaría poder definir un tipo para cualquier celda y el software evitaría que la celda tenga un valor de cualquier otro tipo.
Por ejemplo: tendría una hoja de cálculo con ID de personas como números enteros, sus nombres como cadenas y sus números de teléfono también como cadenas. Los números de teléfono solo tienen dígitos, por lo que se convertirían en un número en una hoja de cálculo, pero no aquí porque el tipo se define como cadena.
Esto es similar a las bases de datos, pero quiero que se use como una hoja de cálculo, es decir, con fórmulas, filas ordenadas y referencias a otras celdas. Por ejemplo, el primer ID es 1 y todos los demás ID son mayores en uno que la fila de la celda 1 anterior.
Las hojas de cálculo admiten la validación de datos (consulte Datos -> Validez ). También puede usar el formato condicional para resaltar cualquier problema.
Necesita una aplicación de base de datos para hacer eso, pero necesitaría diseñar una interfaz personalizada para manipular datos. Por ejemplo, la base de datos gratuita de LibreOffice, Base , le permite crear formularios personalizados .
Los datos se almacenan en el "back end" o base de datos relacional, y la información se ingresa, busca y manipula en el "front end" o interfaz de usuario. La mayoría de las aplicaciones de bases de datos también tienen un sistema de comando de lenguaje de consulta estructurado (SQL) , de modo que los datos pueden definirse con tipos fijos e incluso validarse, así como buscarse, ingresarse o eliminarse. Por ejemplo, un campo de código postal canadiense podría validar que los únicos caracteres son dígitos (D), letras mayúsculas (A) y espacio, en el formato ADA DAD. Además, vea este video sobre SQL en Base .
En Excel, puede usar una hoja como formulario de entrada combinado con intersect(target)
el uso Worksheet_Change
, puede verificar el tipo de datos que se escribió en la celda y modificar / eliminar el valor después de que todos los datos necesarios se escribieron con VBA y se guardaron en una hoja oculta utilizada como 'tabla'.
Comprobar datos es número
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A5")) Is Nothing Then CheckIfNumber(Target)
End Sub
Sub CheckIfNumber(Target)
If not isnumber(Target) then
Target=""
End if
End Sub
Si no le gusta la hoja como formulario de entrada, puede crear un formulario de Excel en el editor de VBA.
Marcos