Notifications
Clear all

PLANILHA COM VALIDADE DE SENHA

4 Posts
3 Usuários
0 Reactions
1,124 Visualizações
(@rodrigo09)
Posts: 5
Active Member
Topic starter
 

Pessoal pesquisando na internet achei um código que possibilita colocar uma validade na minha planilha. O problema e que depois que vence a validade se o usuário atrasar o calendário do Windows o código e burlado. Alguém me pode ajudar nesse problema?

Private Sub Workbook_Open()
Application.EnableCancelKey = xlDisabled

Dim dt As Date

'Escolha a data em a Pasta de Trabalho deverá expirar (ano, mês, dia)
dt = DateSerial(2015, 6, 29)
If Date >= dt Then
MsgBox "Esta Pasta de Trabalho expirou! Favor contatar o administrador."
ThisWorkbook.Close SaveChanges:=False
End If
End Sub

 
Postado : 25/07/2016 1:26 pm
(@vbajr10)
Posts: 34
Eminent Member
 

Você pode gravar a data cada vez que a planilha for aberta em uma célula qualquer protegida e colocar para checar caso a data for menor do que a existente na célula dê a informação de data corrompida e fecha a planilha.

Se o usuário sempre tiver acesso à internet pode também por para pegar a data da internet, aí não dependerá da data local da máquina.

 
Postado : 25/07/2016 4:03 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Vbajr como seria um exemplo de pegar a data da internet.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 25/07/2016 5:04 pm
(@vbajr10)
Posts: 34
Eminent Member
 
Sub InternetDate()
    Dim Request     As Object
    Dim ServerURL   As String
    Dim Results     As String
    Dim NetDate     As String
    Dim LocalDate   As Date
   
    ServerURL = "http://www.timeanddate.com/worldclock/fullscreen.html?n=2"
    Set Request = CreateObject("Microsoft.XMLHTTP")
    
    Request.Open "GET", ServerURL, False, "", ""
    Request.Send
    Results = Request.getResponseHeader("date")
    Results = Mid(Results, 6, Len(Results) - 9)
    NetDate = Left(Results, Len(Results) - 9)
    NetDate = Format(Results, "DD/MM/YYYY")
    
    MsgBox NetDate
    
    Set Request = Nothing

End Sub

Fonte: http://www.myengineeringworld.net/2013/ ... r-vba.html

 
Postado : 25/07/2016 6:32 pm