Notifications
Clear all

[Resolvido] Proteger planilha do Excel com tempo para expirar ou senha

10 Posts
3 Usuários
0 Reactions
3,465 Visualizações
Aylmer
(@aylmer)
Posts: 15
Active Member
Topic starter
 

Creio que estou postando no tópico correto. Qualquer coisa, só mover ou me notificar que tomarei as devidas precauções para correção do tópico.

Venho fazendo uma planilha no Excel com algumas fórmulas e funcionalidades a qual irei fazer uma "locação" da mesma. Com isso, será cobrado uma mensalidade referente ao uso da mesma.

Necessito arrumar alguma forma para bloquear a abertura da planilha, mediante a algum serial (que limitaria o uso por máquina) ou alguma forma de expirar o uso, para que não abrisse mais a planilha a partir de 30 dias (ou algum outro prazo estipulado), sendo necessário que eu fosse até o cliente e liberasse a planilha com uma senha para o uso de mais 30 dias (ou outro prazo).

Comentários do tipo "só se mexer no serial do Office" são dispensáveis. Necessito disso em cima de uma PLANILHA.

Aproveitando a situação, necessito saber também como bloquear em uma planilha algumas células para que somente algumas sejam editadas, sem liberara a edição das outras ou então a reexibição de células ocultadas por mim.

Segue link com alguns exemplos do que necessito: http://www.distrividros.com.br/2011/upl ... vidros.zip

Buscando uma solução mais ágil, talvez eu poderia adquirir um pendrive (de 128mb que seja) só pra colocar a planilha dentro e a distribuir, porém seria necessário que eu bloqueasse a planilha dentro do pen drive contra cópias, inclusive se a pessoa fosse em Salvar Como e salvasse uma cópia do arquivo em sua máquina. Haveria como?

 
Postado : 27/06/2012 3:32 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite Aylmer

Veja se o conteúdo deste site pode te ajudar:

http://exceletudo.webnode.com.br/news/e ... nada-data/

Dê retorno.

Um abraço.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 27/06/2012 4:03 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Tente...

Private Sub Workbook_Open()
    If Date > #4/5/2011# Then
        MsgBox "Trial period expired"
        ThisWorkbook.Close False
    End If
 End Sub
 

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 27/06/2012 7:20 pm
Aylmer
(@aylmer)
Posts: 15
Active Member
Topic starter
 

As duas dicas foram show!
Posso usar a primeira na questão de um demo e a segunda como uma renovação de licença, mesmo, pois assim o cliente renovando, não perderia seus dados anteriores.
O problema é que do Office 2007 em diante, o usuário escolhe se habilita a macro ou não. Ele não habilitando, não adiantará.
Para sanar esse problema, haveria algum script que obrigue o user a habilitar as macros?
Talvez um que ocultasse todas as planilhas da pasta e só mostrasse elas após a habilitação das macros.
Porque ai posso deixar a primeira planilha como se fosse uma tela de apresentação e informação, instruindo à habilitação das macros e quando habilitado, mostrasse as outras planilhas.

 
Postado : 28/06/2012 6:41 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!
Por questões de segurança isso não possível (obrigar o usuário a habilitar as macros)!

Existem outras formas do tipo, ocultar as planilhas etc, de modo que o mesmo não consiga usar, a não ser que habilite a macro.

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 28/06/2012 11:31 am
Aylmer
(@aylmer)
Posts: 15
Active Member
Topic starter
 

Exato alexandrevba. Foi o que citei ao final do post.
Alguma forma de ocultar as demais planilhas para que somente após habilitar as macros as mesmas tornem a aparecer.

 
Postado : 28/06/2012 1:46 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Veja esse exemplo.
Fonte: http://www.vbaexpress.com/kb/getarticle.php?kb_id=380

Option Explicit
Option Compare Text
 'Password to unhide sheets
Const pWord = "MyPassword"
 
Sub HideSheets()
     'Set worksheet to Very Hidden so that it can only be unhidden by a macro
    Worksheets("Confidential").Visible = xlSheetVeryHidden
End Sub
Sub ShowSheets()
     'Prompt the user for a password and unhide the worksheet if correct
    Select Case InputBox("Please enter the password to unhide the sheet", _
        "Enter Password")
         
    Case Is = pWord
        With Worksheets("Confidential")
            .Visible = xlSheetVisible
            .Activate
            .Range("A1").Select
        End With
    Case Else
        MsgBox "Sorry, that password is incorrect!", _
        vbCritical + vbOKOnly, "You are not authorized!"
    End Select
End Sub
 
Option Explicit
 
Private Sub Workbook_Open()
    Application.ScreenUpdating = False
     
     'Hide confidential sheet at startup
    Call HideSheets
     
     'Activate cell A1 on the Dashboard sheet at startup
    With Worksheets("Dashboard")
        .Activate
        .Range("A1").Select
    End With
    Application.ScreenUpdating = True
End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 28/06/2012 5:42 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite Aylmer

Dá para fazer assim:

Ocultar todas as planilhas que você utiliza, deixando uma planilha em branco com a mensagem: “FAVOR HABILITAR MACROS PARA TER ACESSO AO CONTEÙDO DESTE ARQUIVO”.
Proteja o arquivo com senha a pasta para que os usuários não consigam reexibir planilhas ocultas.

Coloque uma macro na inicialização que desproteja e exiba a planilha desejada.
Se a macro não for ativada, ele terá acesso somente a planilha com a mensagem “FAVOR HABILITAR MACROS PARA TER ACESSO AO CONTEÙDO DESTE ARQUIVO”.

Um abraço.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 28/06/2012 7:12 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite! Aylmer

Segue minha contribuição.

Sub workbook_open()
If Date <= #12/12/2012# Then Exit Sub
MsgBox "Planilha fora da validade"
With ThisWorkbook
.Saved = True
.ChangeFileAccess xlReadOnly
Kill .FullName
.Close False
End With
End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 29/06/2012 6:16 pm
(@gangstar)
Posts: 6
Active Member
 

@fernandofernandes Boa tarde Fernando! Amigo, pode me dizer como fazer para que a pessoa seja forçada a "Habilitar Conteúdo"?

 
Postado : 24/01/2022 2:03 pm