Línea en macro para proteger libro Excel además de la hoja activa
Nuevamente molestando. Es que estoy de reposo y trato de sentirme ocupado.
El asunto es que en lam macro anterior, le algo más de vida. Ahora quiero además de la protección de la hoja Copia, quiero también que proteja ese libro copia tal como lo hace protegiendo la Hoja.
'Sacada de la plantilla Lista Repuestos
Sub guardar_Copia() 'PARA GUARDAR COMO XLSX
'Por.Dante Amor http://www.todoexpertos. com/preguntas/6fxnalqm9tyxkxdd/ en-macro-excel-copiar-el-rango-en-ves-de-la-hoja ?selectedanswerid=6g395i5pqbj6ipxt
Application.ScreenUpdating = False
Application.DisplayAlerts = False
With ThisWorkbook.Sheets(1)
Set h1 = ActiveSheet
'Nombre para el archivo
nbr = Ini(Quitar(.Range("E8"))) & "_" & h1.Name & " " & .Range("J8") & " " & .Range("G9") & " " & .Range("K9").Value
'nombre = Ini(Quitar(.Range("G4"))) & "_" & h1.Name & " " & .Range("H3") & Format(.Range("I3"), "0000") 'Para solo las iniciales _
en G4, formato de número en I3 de conteo y nombre de la hoja
End With
'Ruta carpeta destino en la ventana Guardar como:. Puede cambiar la ruta aqui
rut = "c:\0\"
'Guardar copia en
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Selecciona una carpeta"
.AllowMultiSelect = False
.InitialFileName = rut
'Si cancela sale de la macro
If .Show <> -1 Then Exit Sub
cp = .SelectedItems(1)
End With
'Copia la hoja
h1.Copy
'Elimina objetos Shapes (formas) existentes en la hoja
With ActiveSheet
.Shapes.Range(Array("uno", "dos")).Delete
'Selection.Delete
'Por si hay datos en este rango y no los quiere en la copia, los eliminará pero tendras Desproteger este rango en la hoja Copia
.Unprotect Password:="By Jot@" 'Desprotege la copia para ejecutar limpiesa en el rango
.Range("L1:Z500").Clear 'puede cambiar el rango o desactivarlo si no lo necesita
'Proteger la copia completa totalmente
.Protect Password:="By Jot@", DrawingObjects:=True, Contents:=True, Scenarios:=True
.EnableSelection = xlNoSelection 'Restringe todo, seleccion y escritura
End With
ThisWorkbook.Protect Password:="By Jot@"
'Guarda hoja como xlsx
ActiveWorkbook.SaveAs Filename:=cp & "\" & nbr & ".xlsx", _
FileFormat:=xlOpenXMLWorkbook, ReadOnlyRecommended:=False, _
CreateBackup:=False
ActiveWorkbook.Close
MsgBox "Archivo guardado en " & cp & "\" & nbr & ".xlsx"
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Range("B11").Select
End Sub
Para que quede así;

Al darle con el derecho en la pestaña de la hoja, que nada quede activado (si es posible)
1 respuesta
Respuesta de Dante Amor
1