Buscando por la red encontré algunas iniciativas de macros para colocar fecha de caducidad, en un caso solo esta programada y cuando se ha cumplido la fecha sale un mensaje de aviso y luego ya no se puede volver a abrir (al menos para los menos avanzados).
Const DateEnd As Date = "20/04/2016"
If Date > DateEnd Then
MsgBox "Fecha caducada,"
ThisWorkbook.Close
Exit Sub
End If
En este caso para alargar el tiempo le cambian la fecha al windows y listo se puede abrir.
Para evitar esto se ha diseñados entonces así:
Const DateInicio As Date = "10/04/2016" 'Fecha de Instalación de la Hoja.
Const DateEnd As Date = "31/08/2016" 'Fecha en la que quiero ponerle fin.
If Date < DateInicio Or Date > DateEnd Then
MsgBox "Fecha caducada"
ThisWorkbook.Close (False) 'Cierra el libro sin guardar los cambios.
Exit Sub
End If
En otro caso se hace que al cumplirse la fecha directamente pide una contraseña y si no la tiene entonces se cierra el libro.
En otros casos se prevee agregarle también un contador de días faltantes?, osea que me mande un mensaje notificando cuantos días quedan antes que caduque el libro y ademas me muestre el e-mail del autor o proveedor del libro, para que sea contactado en caso de que requieran el codigo de activación definitivo o les interese comprar un poco mas de tiempo
pero esto ultimo no ha tenido una respuesta que cumpla lo mencionado
ejemplo esta que solo lo ue hace es recordar la fecha de caducidad
Private Sub Workbook_Open()
Dim FechaCaducidad As Date
FechaCaducidad = #8/10/2016#
If FechaCaducidad > Date Then
MsgBox "Faltan " & FechaCaducidad - Date & " días para su caducidad", vbInformation
Else
MsgBox "Lo sentimos, pero este libro de trabajo" & vbCrLf & "ha llegado a su fecha de vencimiento", vbCritical
Application.DisplayAlerts = False
ActiveWorkbook.ChangeFileAccess xlReadOnly
Kill ActiveWorkbook.FullName
ThisWorkbook.Close
End If
End Sub
Algo asi seria suficiente:
Private Sub Workbook_Open()
Const DateEnd As Date = "10/05/2016"
If Date > DateEnd Then
MsgBox "Fecha caducada, para abrir elarchivo ingrese la contraseña"
userformIngresodeContraseña.Show 'Entonces le pida la contraseña
ThisWorkbook.Close
Exit Sub
End If
Tienen un ejemplo conbinado con el userform para pedir en ese caso la contraseña de activación
Gracias anticipadas
Featured Replies
Archivado
Este tema está ahora archivado y está cerrado a más respuestas.
Buscando por la red encontré algunas iniciativas de macros para colocar fecha de caducidad, en un caso solo esta programada y cuando se ha cumplido la fecha sale un mensaje de aviso y luego ya no se puede volver a abrir (al menos para los menos avanzados).
Const DateEnd As Date = "20/04/2016" If Date > DateEnd Then MsgBox "Fecha caducada," ThisWorkbook.Close Exit Sub End If
En este caso para alargar el tiempo le cambian la fecha al windows y listo se puede abrir.
Para evitar esto se ha diseñados entonces así:
Const DateInicio As Date = "10/04/2016" 'Fecha de Instalación de la Hoja. Const DateEnd As Date = "31/08/2016" 'Fecha en la que quiero ponerle fin. If Date < DateInicio Or Date > DateEnd Then MsgBox "Fecha caducada" ThisWorkbook.Close (False) 'Cierra el libro sin guardar los cambios. Exit Sub End If
En otro caso se hace que al cumplirse la fecha directamente pide una contraseña y si no la tiene entonces se cierra el libro.
En otros casos se prevee agregarle también un contador de días faltantes?, osea que me mande un mensaje notificando cuantos días quedan antes que caduque el libro y ademas me muestre el e-mail del autor o proveedor del libro, para que sea contactado en caso de que requieran el codigo de activación definitivo o les interese comprar un poco mas de tiempo
pero esto ultimo no ha tenido una respuesta que cumpla lo mencionado
ejemplo esta que solo lo ue hace es recordar la fecha de caducidad
Private Sub Workbook_Open() Dim FechaCaducidad As Date FechaCaducidad = #8/10/2016# If FechaCaducidad > Date Then MsgBox "Faltan " & FechaCaducidad - Date & " días para su caducidad", vbInformation Else MsgBox "Lo sentimos, pero este libro de trabajo" & vbCrLf & "ha llegado a su fecha de vencimiento", vbCritical Application.DisplayAlerts = False ActiveWorkbook.ChangeFileAccess xlReadOnly Kill ActiveWorkbook.FullName ThisWorkbook.Close End If End Sub
Algo asi seria suficiente:
Private Sub Workbook_Open() Const DateEnd As Date = "10/05/2016" If Date > DateEnd Then MsgBox "Fecha caducada, para abrir elarchivo ingrese la contraseña" userformIngresodeContraseña.Show 'Entonces le pida la contraseña ThisWorkbook.Close Exit Sub End If
Tienen un ejemplo conbinado con el userform para pedir en ese caso la contraseña de activación
Gracias anticipadas