Jump to content
Carlos Valenzuela

ESTABLECER FECHA MAXIMA DE MODIFICACIÓN

Recommended Posts

Hola, compañeros de AyudaExcel!

Me pueden decir si es posible establecer una fecha  final para la modificación de un documento de excel, les platico realice un documento y me piden que si es posible que se bloquee cada mes, y para el siguiente mes solamente copiar un archivo original vació y volver a colocarle una fecha de cierre...y de ser posible me pueden decir como?

Gracias de ante mano!

Edited by johnmpl
Palabras como URGENTE no deben ir en los títulos de los temas.

Share this post


Link to post
Share on other sites
Private Sub Workbook_Open()
 If Now() >= #7/17/2017# Then
  Range("A1").Select
  ActiveSheet.Protect Password:="nhj", DrawingObjects:=True, Contents:=True, Scenarios:=True
  Range("A1").Select
 End If
End Sub

Encontre este pero solo es para una hoja, como seria para todo el libro?

 

Share this post


Link to post
Share on other sites

Cambia "ActiveSheet" por "ActiveWorkBook" :) . De todas las maneras deberías tener claro qué quieres proteger. Te dejo un enlace de Microsoft para que lo consultes y veas las diferencias entre proteger a nivel de libro u hoja:

Protección en Excel

Siquisieras proteger libro y hojas, el código sería:

 

Sub Proteger()     
On Error GoTo fin     
Dim sht As Worksheet     

Application.ScreenUpdating = False         
ActiveWorkbook.Protect ("contraseña")         
For Each sht In ActiveWorkbook.Worksheets             
If sht.Visible = True Then                 
sht.Protect ("contraseña1")             
End If         
Next 

fin: 
End Sub

 

Share this post


Link to post
Share on other sites

gracias @Haplox tu codigo es correcto, pero como seria si la condición fuera una fecha, que en el momento que pase esa fecha establecida el libro se bloquee?

Cita
Hace 8 horas, Haplox dijo:

Sub Proteger() On Error GoTo fin Dim sht As Worksheet Application.ScreenUpdating = False ActiveWorkbook.Protect ("contraseña") For Each sht In ActiveWorkbook.Worksheets If sht.Visible = True Then sht.Protect ("contraseña1") End If Next fin: End Sub

 

 

Share this post


Link to post
Share on other sites

Ten en cuenta que todo esto es sobre teoría, pero me imagino que sería algo como:
 

Sub Proteger()
On Error GoTo fin
Dim sht As Worksheet
Dim fchLimite as Date
Dim fchActual as Date

Application.ScreenUpdating = False

fchaLimite=CDate(la que sea)
fchActual=Date 

If fhcActual > fchLimite Then
ActiveWorkbook.Protect ("contraseña")
For Each sht In ActiveWorkbook.Worksheets
If sht.Visible = True Then
sht.Protect ("contraseña1")
End If
Next
End If
fin:
End Sub

Si quisieras que este código se activase al abrir el libro, deberias ponerlo en "ThisWorkBook" (en el editor de VBA) y cambiar el:

Sub Proteger() 

por

Sub Auto_Open()

 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×
×
  • Create New...

Important Information

Privacy Policy