Archive

Posts Tagged ‘Proteger’

EXCELeINFO add-in 2.2.8 – proteger varias hojas a la vez con contraseña

Tenía pendiente la herramienta para protegar varias hojas a la vez. Ahora la presento con la misma modalidad que las otras herramientas, con un ListBox donde aparecen todas las hojas del libro, además de indicarnos si la hoja ya está protegida o se encuentra visible.

Cómo funciona ??

Dentro del mismo formulario están las opciones para proteger y desproteger. Al momento de iniciar el formulario, queda activada la pestaña de protección con las opciones adicionales dependiendo del grado de protección. Cuando se elige el apartado de desprotección, se ocultan las opciones, ya que no son necesarias; con esto modificamos las dimensiones del Form en tiempo de ejecución.

Nota: la actual herramienta reemplaza las dos macros que hacían lo mismo, pero no tenían opción de asignarles contraseña.

Imágenes de ejemplo

image

Protección

image

Desprotección

:: Descargar EXCELeINFO add-in 2.2.8

Modificar celdas sin desprotegerlas

Cuántas veces, al momento de grabar nuestras macros, queremos proteger nuestras hojas, pero después tenemos que seguir ingresando datos, pero nuestra hoja ya está protegida.

Una solución es Desproteger nuestra hoja y volverla a proteger.

Otra opción es, utilizando el mismo método Protect del objeto Sheet, pero asignándole el argumento de sólo proteger el entorno del usuario o UserInterfaceOnly, para que nuestras macros puedan seguir modificando celdas sin tener que desproteger y Proteger.

Ejemplo de protección:

Sub ProtegerEntornoUsuario()
ActiveSheet.Protect UserInterfaceOnly:=True, Password:="Opcional"
End Sub

Después de protegida nuestra hoja, podemos modificar nuestras celdas:

Sub ModificarCelda()
[A1] = "Dato insertado sin modificar celda"
End Sub

Nota: el ejemplo 2 utiliza el rango de celdas entre corchete sólo como ejemplo para la hoja activa. No se recomienda para macros más elaboradas.

Categories: Excel, vba Tags: , , ,

Proteger varias hojas al mismo tiempo en Excel

March 16, 2010 4 comments

La siguiente macro resuelve el problema cuando tenemos varias hojas de trabajo y tenemos la necesidad de proteger todas. Dada la misma situación, pero para desprotegerlas.

Sub protect_all()
    For Each sht In ActiveWorkbook.Sheets
        sht.Protect Password:="test"
    Next sht
End Sub
'
Sub unprotec_all()
    For Each sht In ActiveWorkbook.Sheets
        sht.Unprotect Password:="test"
    Next sht
End Sub
Categories: vba Tags: ,