Bloqueo de celdas en formato de excel

06/01/2012 - 19:05 por anita0613 | Informe spam
¡ Hola !

Necesito de su ayuda por favor. Estoy realizando un formato en excel y quiero bloquear unas celdas, de modo que no se pueda acceder a ellas hasta que no se llenen unos campos obligatorios.
Me pueden indicar como hacerlo, que código podria utilizar en VB?

Muchas gracias

Preguntas similare

Leer las respuestas

#1 Benito Merino
06/01/2012 - 22:42 | Informe spam
On 6 ene, 19:05, anita0613
wrote:
¡ Hola !

 Necesito de su ayuda por favor. Estoy realizando un formato en excel y quiero
 bloquear unas celdas, de modo que no se pueda acceder a ellas hasta que no se
 llenen unos campos obligatorios.
 Me pueden indicar como hacerlo, que código podria utilizar en VB?

 Muchas gracias



Hola.

En primer lugar deberás definir un nombre que identifique las celdas
obligatorias. Yo he llamado este rango como RANGOCONTROL

Después tienes que crear el siguiente evento en la pestaña donde se
encuentran estas celdas:


Private Sub Worksheet_SelectionChange(ByVal Target As Range)


Dim R As Range



For Each cell In Range("RANGOCONTROL")
A = A + 1
If cell.Value <> "" Then B = B + 1
Next
If A = B Then
ActiveSheet.Unprotect
Else
ActiveSheet.Protect
End If
End Sub

Cada vez que modificas una celda revisa que todas las celdas del rango
estén cumplimentadas (distinto de ""). En ese caso desprotege la hoja.
Finalmente he puesto un control que protege la hoja en el caso de que
se borrase el contenido de alguna del rango de control, algo que
puedes eliminar
borrando la fila de activesheet.protect.

Saludos

Benito
Respuesta Responder a este mensaje
#2 Benito Merino
06/01/2012 - 22:47 | Informe spam
On 6 ene, 19:05, anita0613
wrote:
¡ Hola !

 Necesito de su ayuda por favor. Estoy realizando un formato en excel y quiero
 bloquear unas celdas, de modo que no se pueda acceder a ellas hasta que no se
 llenen unos campos obligatorios.
 Me pueden indicar como hacerlo, que código podria utilizar en VB?

 Muchas gracias




Hola.

Define un rango que identifique las celdas de cumplimentación
obligatoria (yo le he llamado "RANGOCONTROL").

Posteriormente hay que pegar el siguiente código en el objeto hoja de
cálculo que contiene las celdas indicadas.


Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim R As Range

For Each cell In Range("RANGOCONTROL")
A = A + 1
If cell.Value <> "" Then B = B + 1
Next
If A = B Then
ActiveSheet.Unprotect
Else
ActiveSheet.Protect
End If
End Sub

Saludos,

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