Actualización del programa

Hola de nuevo amiga que seguido no..., bueno mi consulta ahora es la siguiente necesito colocar una fecha de vencimiento a mi proyecto ya que todos los meses debo agregar una información que es vital para los resultados, de tal manera que si no se actualiza el proyecto no pueda ejecutarse, he probado con esto que saque de acá del foro pero no funciona:
Primero se establece la fecha de caducidad
Private Sub EstableceCaducidad()
Dim Caducar As Date
Caducar = CDate("20/5/2004")
SaveSetting "MiArchivo", "Util", "Caduca", Format(Caducar)
End Sub
en el evento Open validamos que este dentro de la fecha
Private Sub Workbook_Open()
Dim Caducidad As String
Dim Fecha As Date
Caducidad = GetSetting("MiArchivo", "Util", "Caduca")
If Caducidad <> "" Then
Fecha = CDate(Caducidad)
If Fecha < Date Then
MsgBox "Este archivo a caducado"
ThisWorkbook.Close False
End If
End If
End Sub
esta macro es para que elimines la fecha de caducidad
Private Sub QuitarCaducidad()
DeleteSetting "MiArchivo", "Util"
End Sub
Ahora no se que es lo que pasa observa que estoy colocando una fecha super antigua para probar haber si de una vez me aparece el mensaje "Este archivo ha caducado", pero no lo hace sigue trabando normal
Otra cosa estoy colocando la primera parte de la rutina la estoy colocando en Declaraciones en ThisWorkbook, la segunda en ThisWorkbook evento open y la tercera en la misma que la primera estra bien así o me estoy equivocando y por eso no me funciona o es que me falta algo para hacerlo bueno amiga un saludo y gracias de antemano

1 Respuesta

Respuesta
1
Me imaginé que durante el fin de semana te darías cuenta del problema. Si efectivamente era eso. Aquí va mi respuesta que ya la tenía lista.
Hasta pronto
Hola:
Te cuento que funciona perfecto (lo probé en 2 versiones distintas) y creo saber lo que te sucede: ¿Ejecutaste la primer rutina? Por que esa y la última se ejecutan manualmente. La segunda se ejecuta cada vez que se abre el libro.
El error se presenta porque la primer y última rutina debieran estar en un módulo, así te asegurarías de que no se ejecutan solas sino que lo tenés que hacer vos. Quítale la palabra Private y dejalas así en un módulo:
Option Explicit
'tendrás que pararte en esta rutina y ejecutarla, o desde el menú Herramientas, Macros
Sub EstableceCaducidad()
Dim Caducar As Date
Caducar = CDate("20/5/2004")
SaveSetting "Libro1.xls", "Util", "Caduca", Format(Caducar)
End Sub
'esta macro es para que elimines la fecha de caducidad
Sub QuitarCaducidad()
DeleteSetting "Libro1.xls", "Util"
End Sub
La otra está bien en Thisworkbook

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas