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
 

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

Preguntas similares