validacion de celda

04/08/2004 - 21:39 por ivan dario benitez | Informe spam
Hola, estoy validando una celda para que el valor
ingresado sea mayor a cero y no sea blanco, este funciona
bien a excepcion cuando el usuario borra al informacion
con la tecla "Supr" dejando la celda en blanco.
Como hago para evitar que dicha celda quede en blanco
cuando utilizan la tecla "Supr" .

Gracias

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
05/08/2004 - 08:47 | Informe spam
hola, ivan !

... validando una celda para que el valor ingresado sea mayor a cero y no sea blanco
... funciona ... a excepcion cuando el usuario borra ... con la tecla "Supr" dejando la celda en blanco.
... evitar que dicha celda quede en blanco cuando utilizan la tecla "Supr"



nota que las reglas de validacion 'sirven' para [en buena medida] 'asegurar' la introduccion de [ciertos] datos
pero... NO son [totalmente] 'infalibles' :(
- pueden ser 'sobre-escritas/eliminadas' [por un 'paste' que 'venga' de un 'cut/copy' de otro rango]
- pueden ser 'omitidas' [cuando la 'entrada' de los datos es por codigo]
- pueden ser 'sobre-pasadas' [cuando se hace -p.e.- edicion / reemplazar]
- pueden ser 'eliminadas' [p.e. con el menu edicion / borrar / todo]
- puede ser 'borrado' el contenido de la/s celda/s [etc.] :(

si [solo] necesitas ->evitar<- que sea 'borrado' el contenido de una celda 'validada' [tecla 'supr'], es necesario...
- modificar el 'comportamiento' de la tecla {Supr} [de preferencia SOLO en la/s hoja/s que sea necesario] y...
- 'devolverle' su comportamiento 'normal' [sobre todo... ANTES de cerrar el libro que lo modifica] <=OJO

prueba con los codigos sugeridos al final y... ¿comentas?
saludos,
hector.
en un modulo de codigo 'normal' ==Option Private Module
Sub VerificaValidaciones()
Dim TipoVal As Long
On Error Resume Next
TipoVal = ActiveCell.Validation.Type
If Err.Number <> 0 Then ActiveCell.ClearContents
End Sub
en el modulo de codigo de 'esa/s hoja/s' ==Private Sub Worksheet_Activate()
Application.OnKey "{Del}", "VerificaValidaciones"
End Sub
Private Sub Worksheet_Deactivate()
Application.OnKey "{Del}"
End Sub
en el modulo de codigo del libro [ThisWorkbook] ==Private Sub Workbook_Deactivate()
Application.OnKey "{Del}"
End Sub
Respuesta Responder a este mensaje
#2 Fernando Arroyo
05/08/2004 - 08:51 | Informe spam
"ivan dario benitez" escribió en el mensaje news:025e01c47a5a$bc3dab60$
Hola, estoy validando una celda para que el valor
ingresado sea mayor a cero y no sea blanco, este funciona
bien a excepcion cuando el usuario borra al informacion
con la tecla "Supr" dejando la celda en blanco.
Como hago para evitar que dicha celda quede en blanco
cuando utilizan la tecla "Supr" .

Gracias



Prueba con el siguiente código, el cual va en el módulo de la hoja (click derecho sobre su etiqueta->Ver código):

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then If Target = "" Then Application.Undo
End Sub

(suponiendo que la celda fuera A1).

Ten en cuenta que el código no funcionará si el usuario abre el libro sin autorizar la ejecución de macros...
Un saludo.


Fernando Arroyo
MS MVP - Excel
Respuesta Responder a este mensaje
#3 Anonimo
05/08/2004 - 15:33 | Informe spam
Pues la preguntita se las trae.
Le he dedicado bastante tiempo y no he conseguido resolver
la cuestión utilizando las reglas de validación.
He intentado resolverlo utilizando un criterioi de
validación personalizado utilizando varias fórmulas y no me
explico porqué no funciona:

Utilizando la formula "largo(a1)<>0" en una celda auxiliar,
devuelve verdadero cuando se borra el contenido de la
celda, pero no funciona en la regla de validación (?).

También utilicé la formula 'no(eserror(log(a1)))' que
también funciona en una celda auxiliar, pero no en la regla
de validación (?)

He 'jugado' con la opción 'omitir blancos' que parece ser
la culpable del tratamiento de los ceros, sin resultado
positivo.


No me lo explico!!!!

¿alguien puede dar alguna razón de este comportamiento?



Hola, estoy validando una celda para que el valor
ingresado sea mayor a cero y no sea blanco, este funciona
bien a excepcion cuando el usuario borra al informacion
con la tecla "Supr" dejando la celda en blanco.
Como hago para evitar que dicha celda quede en blanco
cuando utilizan la tecla "Supr" .

Gracias
.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida