Bloquear celda a escritura, pero no a macro

29/12/2008 - 13:56 por Telerín | Informe spam
Hola a todos.

¿Cómo podría bloquear un rango de celdas a la escritura manual, pero no a la
escritura mediante macro?

Gracias.

Preguntas similare

Leer las respuestas

#1 pepe
29/12/2008 - 14:28 | Informe spam
bloqueas la escritura y en la macro, desbloqueas, haces los que quieres y
vuelves a bloquear.



"Telerín" escribió en el mensaje de
noticias news:
Hola a todos.

¿Cómo podría bloquear un rango de celdas a la escritura manual, pero no a
la escritura mediante macro?

Gracias.

Respuesta Responder a este mensaje
#2 Héctor Miguel
29/12/2008 - 19:11 | Informe spam
hola, (...) ???

Como podria bloquear un rango de celdas a la escritura manual
pero no a la escritura mediante macro?



por macros puedes hacer (casi) lo que quieras...
siempre y cuando la hoja la (re)protejas en el evento '_open' de tu libro
con la opcion de "solo la interfase con el usuario"

ejemplos protegiendo la hoja al abrirse el libro en el modulo ThisWorkbook...

a) en excel 97 y 2000 NO necesitas repetir el password, es suficiente con poner:
Private Sub Workbook_Open()
Worksheets("Hoja1").Protect UserInterfaceOnly:=True
End Sub

b) a partir de excel 2002 [xp] SI es requisito repetir el password
Private Sub Workbook_Open()
Worksheets("Hoja1").Protect _
PassWord:="la MISMA cOntRaSe#a qUe lE pUsISte", _
UserInterfaceOnly:=True
End Sub

c) si se trata de varias hojas (suponiendo una misma clave para todas)...
Private Sub Workbook_Open()
Dim Hoja As Worksheet
For Each Hoja In Worksheets(Array("hoja1", "hoja4", "hoja6"))
Hoja.Protect PassWord:="123", UserInterfaceOnly:=True
Next
End Sub

(practicamente todo) lo que hagas por codigo... pasara sin problemas
excepto ciertas cosillas relacionadas con ordenaciones, insertar filas/columnas, objetos incrustados...
(y algunas mas que requeriran de otro tipo de administraciones)

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#3 Telerín
29/12/2008 - 19:37 | Informe spam
Gracias a todos, el año que viene iré probando, y pondré los resultados.


Felicidades!!



"Héctor Miguel" escribió en el mensaje
news:
hola, (...) ???

Como podria bloquear un rango de celdas a la escritura manual
pero no a la escritura mediante macro?



por macros puedes hacer (casi) lo que quieras...
siempre y cuando la hoja la (re)protejas en el evento '_open' de tu libro
con la opcion de "solo la interfase con el usuario"

ejemplos protegiendo la hoja al abrirse el libro en el modulo
ThisWorkbook...

a) en excel 97 y 2000 NO necesitas repetir el password, es suficiente con
poner:
Private Sub Workbook_Open()
Worksheets("Hoja1").Protect UserInterfaceOnly:=True
End Sub

b) a partir de excel 2002 [xp] SI es requisito repetir el password
Private Sub Workbook_Open()
Worksheets("Hoja1").Protect _
PassWord:="la MISMA cOntRaSe#a qUe lE pUsISte", _
UserInterfaceOnly:=True
End Sub

c) si se trata de varias hojas (suponiendo una misma clave para todas)...
Private Sub Workbook_Open()
Dim Hoja As Worksheet
For Each Hoja In Worksheets(Array("hoja1", "hoja4", "hoja6"))
Hoja.Protect PassWord:="123", UserInterfaceOnly:=True
Next
End Sub

(practicamente todo) lo que hagas por codigo... pasara sin problemas
excepto ciertas cosillas relacionadas con ordenaciones, insertar
filas/columnas, objetos incrustados...
(y algunas mas que requeriran de otro tipo de administraciones)

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

Respuesta Responder a este mensaje
#4 Telerín
09/01/2009 - 14:30 | Informe spam
Bueno, probé con "ActiveSheet.Unprotect" y de lujo.

El caso es que luego quité el "ActiveSheet.Unprotect" y seguía funcionando
bien, o sea, protegidas las celdas y pudiéndose modificar desde la macro.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida