Jump to content
Fórum Script Brasil
  • 0

Arquivo Que Expire /!?


sange
 Share

Question

alo...turma!!!

bem....

Gastaria de saber se há como fazer com que um arquivo (por exempo: de word, excel ou power point) expire???

tipo: usando VBA talvez, e colocando algum tipo de code de modo a deixa-lo util durante um tempo (coisa de alguns dias).

A hipodetese de ter mencionado VBA não que dizer que eu queira usar esse tipo de linguagem, se haver uma outra madeira para que possar me ajudar, pesso que mencione...!!!

agradesso desde já. Valeww...

valeww...

valeww...

Link to comment
Share on other sites

12 answers to this question

Recommended Posts

  • 0

RenatoMejias: valeww. pela excelente noticia....

Portanto com VBA é 100% possível fazer isso.
......mas não entendi o que você quis dizer em .....
....,conheço um código que pode vincular uma planilha a um número de série de HD. ...

Vincular uma planilha a um número de série de HD????....como assim?? isso não cousa danos de modo geral..???

De qualquer forma isso pode e muito me ajudar.....E como proceder, Qual seria esse code ....????

valeww pela ajuda e atençao.....!!!!!//

Link to comment
Share on other sites

  • 0

Imagine uma planilha que ao inicializar consulta o número de série do HD, se for o número pré determinado no meu código, se não for não abre, que tipo de dano poderia causar?

Quanto ao código seria esse:

Private Sub Workbook_Open()
Call checkHD
End Sub

Private Function checkHD()
Dim objFSO As New FileSystemObject
Dim HD As Drive
Dim strSerial As String

Set HD = objFSO.Drives("C:\")

strSerial = Left(Hex(HD.SerialNumber), 4) & "-" & Right(Hex(HD.SerialNumber), 4)

If Not (strSerial = "A8E5-E897") Then
ThisWorkbook.Saved = True
Application.Quit
End If

Set objFSO = Nothing
Set HD = Nothing

End Function

Créditos pelo código a Robert Martins

Link to comment
Share on other sites

  • 0

sem quere ser meio chato..... ;) .......poderia me explicar esse code;;???"!!!

.....e outra coisa, o arquivo so funcionara em numeros pre deterninado no code compativeis com o HD?? (sei que parece ser uma Idiotice ta perguntando isso mas se for assim, somente alguns usuarios estaram podendo utilizar o arquivo, e na verdade não é bem isso que queria...!!!)

O que realmente queria é que qualquer um usase mas dentro de um determinado tempo, no caso especificado no code..!!!

Tipo como se fossem aqueles programas que expiram em 30 dias... Bem seria de fato isso o meu objetivo. Talvez eu tenha interpretado mal sua resposta então see pode esclarecer melhor ......

valeu....a atençao

Link to comment
Share on other sites

  • 0

sem quere ser meio chato..... wink.gif .......poderia me explicar esse code;;???"!!!

Não sou o criador deste código, não estou em posição de explicar. Mas veja que a sintaxe é simples, se você tem um conhecimento geral sobre VBA entenderá tranquilamente, o que não entender poste no fórum VBA.

e outra coisa, o arquivo so funcionara em numeros pre deterninado no code compativeis com o HD?? (sei que parece ser uma Idiotice ta perguntando isso mas se for assim, somente alguns usuarios estaram podendo utilizar o arquivo, e na verdade não é bem isso que queria...!!!)

Ele funcionará apenas em UM computador, isso protege o arquivo de ser lido em caso de espionagem industrial. Porém só citei isso como EXEMPLO.

O que realmente queria é que qualquer um usase mas dentro de um determinado tempo, no caso especificado no code..!!!

Tipo como se fossem aqueles programas que expiram em 30 dias... Bem seria de fato isso o meu objetivo. Talvez eu tenha interpretado mal sua resposta então see pode esclarecer melhor ......

Sim é possível fazer isso, apenas com VBA.

Link to comment
Share on other sites

  • 0

Pode ser um tanto besta perguntar mas.....como saber o número de série do HD ????

então sendo o N° de serie diferente não há possibilidade de o arquivo se lido em outros locais ??? certo...

Voltando ao contexto principal, o qual eu realmente queria, que é deixa-lo util a quem quiser ate certo praso determinado no code. Pelo fato deu saber muito pouco sobre essa linhagem gostaria se possivel que me indicasse apostilas a que me respondesse essa pergunta.!!!

valeww a sua ajuda.....

Link to comment
Share on other sites

  • 0

Opa Sange, nem tinha visto essa resposta sua. Bem, o número de série só pode ser visto se você abrir o computador (se alguém souber outro método que me diga).

Quanto ao seu problema se resolve com VBA, basta elaborar a lógica.

Link to comment
Share on other sites

  • 0

olha uma adaptação do script que o Renato postou

Private Sub Workbook_Open()
Call checkData
End Sub

Private Function checkData()
Dim vDataExpira As Date
Dim vDataAtual As Date
vDataExpira = "10/08/2007"
vDataAtual = Now()

If (vDataAtual > vDataExpira) Then
ThisWorkbook.Saved = True
Application.Quit
End If

End Function

fiz algumas alterações e testei aqui, funcionou direitinho, acho que é isto que você precisa

qqer coisa posta aí

obs: quando abrir o arquivo ele vai perguntar se você quer ativar ou desativar as macros, se o cara desativar, o documento abre normalmente, só funciona se o usuário clicar em ativar macros.

Edited by fercosmig
Link to comment
Share on other sites

  • 0

Anderson...

no caso seria eu que determinasse ate que data o arquivo ficasse ativo...!!!

RenatoMejias

Quanto ao seu problema se resolve com VBA, basta elaborar a lógica.

e ai que ta, eu sei muito pouco sobre essa logica, a qual pressiso estudar....se poder me passar um aportila pequena so para facilitar nossas comunicaçoes com essa linguagem e poder concluir esse trabalho eu agradesso...

fercosmig

cara valeu a iniciativa, mas como você aplicou esse code ....???fiz assim criei uma macro com um nome qualquer e coloquei esse code...salvei e abri.... nada aconteceu, nada apareceu e o arquivo abriu normalmente.....é assim que faz ou cometi erros......(Obs: uso excel 2003)

Valewww.. a ajuda de todos, obrigado...!!!

Link to comment
Share on other sites

  • 0

Teclando Alt + F11 no seu teclado vai abrir a tela do VBA

então você da 2 cliques no icone do lado esquerdo da tela que provavelmente esta com o nome "EstaPasta_de_trabalho"

e com um icone parecido com o do Excel.

e colocae este código

Private Sub Workbook_Open()
Dim Aux As Integer

Aux = DiasDT(Format(Now(), "dd/MM/yyyy"), Format("09/08/2007", "dd/MM/yyyy"))

'VERIFICA SE A PLANILHA ESTA VENCIDA
If Aux >= 0 Then
    'EXIBE A QUANTO DIAS ESTA VENCIDO A PLANILHA
    ' O IIF É SÓ PARA VERIFICAR SE A PLANILHA ESTA VENCIDA A MAIS DE 1 DIA SE SIM EXIBE DIAS 
    'SE NÃO EXIBE DIA
    MsgBox "A planilha expirou à " & Aux & " " & IIf(Aux > 1, "dias", "dia")
    'FECHA A PLANILHA
    Me.Close
End If
End Sub

'FUNÇÃO
Public Function DiasDT(DT1 As Date, DT2 As Date) As String
    DiasDT = DT1 - DT2
End Function

AH SÓ PRA LEMBRA QUE VBA TEM UM PROBLEMA

SE O USUÁRIO FOR NO MENU FERRAMENTAS/MACRO/SEGURANÇA ELE PODE COLOCAR O NIVEL NO MÉDIO E NA HORA QUE ABRIR ELE SELECIONAR QUE NÃO QUER QUE EXECUTE O SCRIPT

Edited by Anderson Fernandes
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

  • Forum Statistics

    • Total Topics
      149.8k
    • Total Posts
      646.6k
×
×
  • Create New...