Excel - Proteger libros

 
Vista:

Proteger libros

Publicado por Wild T (6 intervenciones) el 20/09/2006 01:30:27
Hola:
Tengo el siguiente codigo:

Dim TablaDatos As Range
Workbooks.Open Filename:="C:\SEGUIMIENTO\RESUMEN ANUAL.xls"
ThisWorkbook.Activate
Range("A14:F14").Select
Set TablaDatos = Range(Selection, ActiveCell.End(xlDown))
TablaDatos.Select
Selection.Copy
Windows("RESUMEN ANUAL.xls").Activate
ActiveSheet.Unprotect
Range("A13").Activate
If ActiveCell = "" Then GoTo Linea Else
Range("A12").End(xlDown).Offset(1).Activate
Linea:

ActiveSheet.Paste
Application.CutCopyMode = False
Range("A13").Activate
ActiveSheet.Protect Scenarios:=True, UserInterfaceOnly:=True
ActiveWorkbook.Close
Range("A14").Select

Me abre el libro RESUMEN ANUAL y desde la hoja activa selecciona hasta el ultimo registro y lo copia en RESUMEN ANUAL, en la siguiente posicion libre.
El problema esta con las instrucciones Protect y Unprotect, cuando incluyo esas lineas me da error, si las quito va bien, pero el libro queda desprotegido...
Alguna sugerencia??
P.D. No se si las instrucciones estarán bien porque soy bastante nuevo y autodidacta.Se agradecen todas las ayudas.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Proteger libros

Publicado por José Luis (700 intervenciones) el 20/09/2006 19:59:22
Caro amigo, creo que te falta indicar la contraseña

ActiveSheet.Protect Password:="laquesea", Scenarios:=True, UserInterfaceOnly:=True

ActiveSheet.UnProtect Password:="laquesea"

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Proteger libros

Publicado por Wild T (6 intervenciones) el 20/09/2006 22:07:08
Gracias maestro, a veces lo más obvio es lo que menos se ve,
por cierto ¿que te parece el resto del código? Estoy empezando con esto de VB y creo que soy poco eficiente, que podría hacerlo mucho mas sencillo, en fin que gracias de todos modos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Proteger libros

Publicado por Wild T (6 intervenciones) el 21/09/2006 00:04:47
No funciona.... me da error en en el metodo Paste de la clase WorkSheet, y me señala en amarillo la linea

ActiveSheet.Paste

Sin embargo, si le quito las lineas de protec y unprotect funciona bien
¿Que puede ser..? Help please
Copio de nuevo el procedimiento entero:

Sub Anual()
'
'
' '
'
Dim TablaDatos As Range
Workbooks.Open Filename:="C:\SEGUIMIENTO\RESUMEN ANUAL.xls"
ThisWorkbook.Activate
Range("A14:F14").Select
Set TablaDatos = Range(Selection, ActiveCell.End(xlDown))
TablaDatos.Select
Selection.Copy
Windows("RESUMEN ANUAL.xls").Activate
ActiveSheet.Unprotect Password:="excel"
Range("A13").Activate
If ActiveCell = "" Then GoTo Linea Else
Range("A12").End(xlDown).Offset(1).Activate
Linea:
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A13").Activate
ActiveSheet.Protect Password:="excel", Scenarios:=True, UserInterfaceOnly:=True
ActiveWorkbook.Close
Range("A14").Select

End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Proteger libros

Publicado por José Luis (700 intervenciones) el 21/09/2006 10:06:52
Vamos por partes, he añadido un comentario antes de cada línea de código para describir qué hace
Sopongo que el libro donde está la macro se llama MILIBRO.XLS

Mira como he dejado las líneas del IF
Dos consejos:
- Deberías seleccionar y activar la hoja de destino en el libro RESUMEN ANUAL
____(Si alguien lo abre y deja activa otra hoja, podrías tener problemas)
- Deberías seleccionar y activar la hoja de origen en MILIBRO, para evitar si la macro se ejecuta desde otra hoja no copie cosas indebidas.

Sub Anual()
'
'
'
Dim TablaDatos As Range
'Abrir un nuevo libro RESUMEN ANUAL.XLS
Workbooks.Open Filename:="C:\SEGUIMIENTO\RESUMEN ANUAL.xls"
'Activa el libro de la macro MILIBRO.XLS
ThisWorkbook.Activate
'De la hoja nosesabecual (¡¡Cuidado!!) que está activa del MILIBRO.XLS selecciona un rango
Range("A14:F14").Select
'Selecciona desde el Rango anterior hasta el final
Set TablaDatos = Range(Selection, ActiveCell.End(xlDown))
TablaDatos.Select
'Copia la seleccion anterior
Selection.Copy
'Activa el libro RESUMEN ANUAL.XLS
Windows("RESUMEN ANUAL.xls").Activate
'Desprotege la hoja nosesabecual (¡¡Cuidado!!) del RESUMEN ANUAL
ActiveSheet.Unprotect Password:="excel"
'Selecciona la celda A13
Range("A13").Activate
'Si A13 está vacía Salta
If ActiveCell = "" Then
GoTo Linea
Else
'Si no está vacía busca la siguiente vacía
Range("A12").End(xlDown).Offset(1).Activate
End IF
Linea:
'Pega en la que está vacía
ActiveSheet.Paste
Application.CutCopyMode = False
'Selecciona la Celda A13 (no haría falta hacer nada)
Range("A13").Activate
'Vuelve a proteger la hoja
ActiveSheet.Protect Password:="excel", Scenarios:=True, UserInterfaceOnly:=True
'Cierra el libro RESUMEN ANUAL
ActiveWorkbook.Close
'Selecciona la celda A14 de la hoja nosesabecual de MILIBRO.XLS
Range("A14").Select

End Sub

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Proteger libros

Publicado por Wild T (6 intervenciones) el 21/09/2006 23:16:15
Gracias por la ayuda,pero.... me sigue dando el mismo error jajaja, la primera vez ha ido bien pero luego me marca error en la linea ActiveSheet.Paste, ya no se que mas probar.....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar