Desproteger todas hojas de libro

Feliz año 2013.

Use varios códigos encontrados para tal fin pero si unos me dan error, otros no cumplen el fin, y por eso pregunto. Uno de ellos este

Private Function Desproteger(ByVal hj As Excel.Worksheet) As Boolean
For i = 1 To Worksheets.Count
Worksheets(i).Select
ActiveSheet.Unprotect Password:="123"
Next i
End Function

El que está funcionando esta en el modulo (es el original de cuando encontré este modulo, y en la hoja1 tengo expuesto mi necesidad

Este es un modulo desde el cual uno puede LIMPIAR espacios generados por el carácter 160 (invisibles de Excel), Son 5 las rutinas incluyendo las Private Function que trabajan en conjunto todas.

Dejo enlace al libro para no extender el post con todo el código expuesto

http://www.mediafire.com/?8cn81tv3y0r2zo5

1 Respuesta

Respuesta
1

No puedo descargar el archivo del enlace que dejaste.

¿Lo qué necesitas es que todas las hojas se desprotejan usando la clave "123"?

Puedes enviarme un archivo con ejemplos y con la macro para hacer pruebas.

¿Cuál es el problema que tienes?

Con esta macro puedes desproteger todas las hojas, siempre y cuando la contraseña sea "123"

Sub Desproteger()
For i = 1 To Worksheets.Count
Worksheets(i).Select
ActiveSheet.Unprotect Password:="123"
Next i
End Sub

Lo que tu pusiste es una función, a lo mejor, sólo necesitas que sea una macro.

Te voy enviarlo a tu mail entonces

Esta explicito en la hoja1 lo que pretendo SIN QUITARLE la/s funciones que actualmente ejecuta. Toda la/s macros están.

¿Cual es su utilidad?, Veremos si puedo explicártelo a detalle y en pocas palabras, jejejejjjejeje, como lo menciono en el 1º mensaje que:

Como está trabaja fenomenal para la limpieza de todas hojas del libro, TODAS, hojas con clave o sin clave.

Al crear y modificar valores o datos en LAS HOJAS de un libro cualquiera, las celdas que antes estaban ocupadas con valores y que por X razón ahora pasaron a y quedaron vacías después de editar o modificar datos o valores, pues esas vacías Excel guarda (algo así como repuesto) de los valores anteriores en dichas celdas vacías, aunque las veas vacías, tienen algo que excel guarda en ellas y pesan igual en el libro, pues estas macros en conjunto (4) lo que hacen es LIMPIAR LAS CELDAS VACÍAS (que antes estaban ocupadas) de esos valores ocultos y ahora si se puede decir que están VACÍAS tal cuando abres un Nuevo libro para comenzar metiéndole datos, el archivo baja de peso por la impiesa, peso que baja mas o menos según la cantidad de celdas a limpiar.

Puedo decirte que hace poco estaba yo con un libro que ya me pesaba 1.78MB le aplique esto y bajo a 400 y poco KB 1.78 por la/s ediciones que le iba haciendo

Una otra 5ª macro que ya fui yo quien la agrego al conjunto de 4(ahora son 5) es que quita los espacios generados por el carácter 160 (invisibles de Excel)

Con todo esto iniciando de la ejecución desde Sub Limpiar_rangos(), ANTES de hacer algo GUARDA una copia exacta del libro con Fecha-Hora y nombre exacto, esto por precaución.

1º- Guarda una copia

2º- Procede a quitar los espacios generados por el carácter 160 (invisibles de Excel)
3º- Procede a la limpieza de celdas y si alguna hoja esta protegida con passw, te manda un aviso si quieres o no desprotegerla,

NOTA: El proceso de limpieza de celdas, lo hace hasta con los colores de fondo de celdas vacías, celda que este vacía sin datos ocultos o no te elimina el color de fondo. La DESPROTECCIÓN DE HOJAS lo hace desde el evento Private Function Desproteger. OJO A ESTA NOTA

4º- Te dice el peso que tenia el libro y el conque quedo finalmente después de ejecutar TODO.

A partir de aquí quiero que tomes atención a la NOTA y al expuesto en la hoja1 del libro donde tengo la exposición de lo que pretendo

Probé ese código, ya había probado con uno similas (si es que no es el mismo que encontré antes acá

Me dá error diciendo:

No se ha definido la variable i For i = 1 To Worksheets.Count

Ejecutándolo sin ser con esta finalidad (simple) si funciona, colocándo este código en el procedimiento (evento) Private Function Desproteger del modulo no funciona

Con todo y eso Lo que tu pusiste es una función , a lo mejor, sólo necesitas que sea una macro.

En su conjunto de como está el modulo, si funciona bien

Te envié el archivo.

Saludos. Dam

Si es lo que necesitas.

Excelente, mui buena tu ayuda.

Sobre el 3º punto, voy hacerlo, abriré nuevo tema con el titulo

Preteger SOLO las Hojas según su nombre en el ImputBox

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas