Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Validación con fórmulas

1,356 views
Skip to first unread message

Daniel Domínguez

unread,
Jan 3, 2008, 8:21:02 AM1/3/08
to
Hola a todos. Tengo una hoja Excel en la que quiero que en una de las
columnas sólo se puedan introducir NIFs válidos.

Para ello he hecho una función ESNIF que devuelve TRUE si el NIF es correcto
y FALSE en caso contrario

Mis problemas son 2

- Al poner la validación de una celda con la fórmula ESNIF(A2)=TRUE no me
funciona y me dice que el valor es siempre incorrecto, a pesar de que he
comprobado que la funcion funciona correctamente

- Una vez que me funcione esa validación, ¿como la "arrastro" al resto de
filas?

Muchas gracias y un saludo

Duck-pet

unread,
Jan 3, 2008, 3:29:20 PM1/3/08
to
Hola.-


mmmm supongo que por NIF te refieres al número de identificación
fiscal español vdd?, bueno si lo que quieres es que con la validación
si te marca falso no te deje avanzar hasta que lo capture ¿bien?, lo
único que tienes que hacer para el punto uno es solo hacer lo
siguiente
(en un supuesto estoy utilizando las formulas estexto, esnumero para
simular lo que puede ser tu formula)

Seleccionar validación - personalizada

Escribir en formula

=esnif(A1)

Ojo donde escribas el NIF es donde estará la validación

Para el punto dos, selecciona la celda que contiene la validación, le
das copiar, seleccionas el rango donde quieres aplicar la validación y
le das pegado especial - validación, seria todo

Saludos

Por favor si no es, comenta


On Jan 3, 7:21 am, Daniel Domínguez

Daniel Domínguez

unread,
Jan 3, 2008, 5:21:03 PM1/3/08
to
Gracias Duck por la respuesta, pero no he solucionado el problema. Has
captado lo que quiero hacer perfectamente, y el punto 2 estaría resuelto con
lo que dices, pero me sigue sin funcionar la validación con la fórmula

He probado cosas como
=ESNIF(D2)
ESNIF(D2) = VERDADERO
ESNIF(D2) = 1

Pero ninguna me funciona. Al meter esas condiciones me niega siempre la
introducción de datos en el campo, aunque sea un NIF válido.

Duck-pet

unread,
Jan 4, 2008, 1:28:54 PM1/4/08
to
Hola

Cierto, cuando haces tu la formula esta no se puede usar como
argumento para "validar", lo que se me ocurre es algo un poco mas
complicado aunque cumpliría lo de "validar" mediante un msgbox,

Puse el siguiente código en la hoja donde esta los datos (Hoja1) para
que cada vez que se cruza en el rango de A:A (donde se supone voy a
capturar los NIF) en ese momento salte la validación


Private Sub Worksheet_Change(ByVal Target As Range)
Dim sh As Object
Set sh = ActiveSheet

If SOLOENTEROS(Intersect(Target, sh.Range("A:A"))) = True Then Exit
Sub
MsgBox "Error?", vbCritical, "Error en captura"
End Sub


La función que use (SOLOENTEROS) fue una que me invente que marca
false si el valor es menor a 0 y true si es mayor que 0 como tal esta
en un modulo

espero te sirva, ahora personaliza y comentas

Saludos


On Jan 3, 4:21 pm, Daniel Domínguez

Héctor Miguel

unread,
Jan 4, 2008, 11:41:37 PM1/4/08
to
hola, Daniel !

> ... quiero que en una de las columnas solo se puedan introducir NIFs validos.
> Para ello he hecho una funcion ESNIF que devuelve TRUE si el NIF es correcto y FALSE en caso contrario
> Mis problemas son 2
> - Al poner la validacion de una celda con la formula ESNIF(A2)=TRUE no me funciona y me dice que el valor es siempre incorrecto


> a pesar de que he comprobado que la funcion funciona correctamente

> - Una vez que me funcione esa validacion, como la "arrastro" al resto de filas?

(hasta donde se) en las reglas de validacion no puedes usar funciones personalizadas NI de complementos "adicionales"
para estos casos, necesitaras usar una celda/columna "auxiliar" donde valides por tu funcion personalizada (o externa)

p.e. para validar si lo escrito en A2 es valido como NIF
a) usa tu funcion en la celda B2: =ESNIF(A2)
b) selecciona la celda A2 y usa en las reglas de validacion (personalizada) la formula =B2
c) prueba la regla introduciendo en A2 un dato que sea (o no) valido como NIF

para "arrastrar" la validacion puedes seleccionar un rango mas extenso y aplicar la regla/formula sobre la celda "activa"
o sea, necesitaras "arrastrar" tambien la celda auxiliar que es la que realmente hace la "validacion"

o... si el algoritmo que usa tu funcion personalizada (ESNIF) lo puedes "traducir" a funciones integradas de hoja de calculo
(problemente) podrias no ocupar de tu funcion personalizada -?-

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.


Daniel Domínguez

unread,
Jan 8, 2008, 5:15:00 AM1/8/08
to
Muchas gracias Héctor.

Con esto he solucionado el problema.

Gracias tambien a Duck. Tu solución también me valía pero, aunque me daba un
mensaje de error, me permitía introducir datos incorrectos y eso no me valía.

De todas formas gracias a ambos

0 new messages