Notifications
Clear all

Impedir que uma planilha seja aberta em outro PC

9 Posts
5 Usuários
0 Reactions
1,933 Visualizações
(@joao_a)
Posts: 0
New Member
Topic starter
 

Boa tarde pessoal!

Preciso de um código VBA para bloquear a utilização em computadores não autorizados. Pois fiz uma planilha que irei distribuir para colegas meus usarem em seus notebooks da empresa, mas não quero que os mesmos a copiem e levem para casa ou distribuem a outros.

Já "bloqueei" os comandos de "ctrl- v e c" de "copiar e colar com o botão direito do mouse" e de "salvar a planilha como" e tbm os acesso ao VBA e ocultei todas as formulas.

Só que nada adianta se poderem copiar o arquivo ou enviar por e-mail.

Então se tivesse um código em que antes de um liberar a planilha para outro pc, o proprietário deste pc teria que me informar algum dado da sua maquina(número do HD, número da placa mãe, nome do computador, nome do usuário, etc..) ai colocava-se este dado no código e a planilha só iria abrir no pc deste código.

Obrigado.

 
Postado : 06/02/2015 10:56 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Legal a ideia, mas um código VBA sempre pode ser impedido de rodar... então essa solução seria pela metade.
Copiar de um computador pro outro, sempre vai poder, se abrir e habilitar macro, vc pode até dizer que nao pode rodar naquela máquina, mas se o cara desabilitar as macros, ele abre o arquivo...

mas eu fiz um uma vez, colocando numa pasta qquer do sistema um arquivo que permitia o uso somente naquele computador.
Vc pode tb pegar o numero do HD, entre outras informações exclusivas do computador, e fazer validações bem bacanas, mas só funcionarão quando habilitarem as macros, entende ?

Posso detalhar o que fiz, pra vc pelo menos ter umas ideias.... quer ?

 
Postado : 06/02/2015 12:24 pm
(@selmo)
Posts: 236
Reputable Member
 

Cara, bloquear a planilha para abrir em outros computadores seria fácil, mas como disse o Fernando, basta desabilitar as macros e o trabalho todo é perdido. E você poderia embutir ela em um executável, assim as macros seriam ativadas automaticamente, mas isso dependeria se onde trabalha é permitida ou não a utilização de executáveis entende.

 
Postado : 06/02/2015 1:26 pm
(@miguel-70)
Posts: 0
New Member
 
'ESTA PASTA DE TRABALHO
Private Sub Workbook_Open()
ConsultarNomeComputador
End Sub

'MODULO
Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, ByRef nSize As Long) As Long
Private Function lfNomeComputador() As String
Dim stBuff As String * 255, lAPIResult As Long
Dim lBuffLen As Long
lBuffLen = 255
lAPIResult = GetComputerName(stBuff, lBuffLen)
If lBuffLen > 0 Then lfNomeComputador = Left(stBuff, lBuffLen)
End Function
Public Sub ConsultarNomeComputador() 'reconhecer computador para abrir a planilha
Dim CompName As String
CompName = lfNomeComputador 'abaixo coloque os nomes dos usuário autorizados a habilitar as macros
If CompName <> "1ª usuário" Then 'nome usuário
If CompName <> "2ª usuário" Then 'outro nome usuário
  ActiveWindow.Close
End If 'cada usuário End If
End If
End Sub

impede somente a habilitação das macros

 
Postado : 06/02/2015 5:36 pm
(@edcronos)
Posts: 1006
Noble Member
 

talvez uma ribon com um codigo para apagar a planilha caso não seja o hd habilitado
uma ribon pelo menos é mais dificil do que uma macro
claro que não seroa 100%
mas aí iria atingir camadas mais especialistas

 
Postado : 06/02/2015 6:00 pm
(@joao_a)
Posts: 0
New Member
Topic starter
 

Sim Fernando. E como fazer com estre procedimento de pegar o numero do HD?

E Edcronos, o que seria Ribon?

 
Postado : 09/02/2015 11:11 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Ribbon (ou em portuguës, faixa de opções)

 
Postado : 09/02/2015 11:15 am
(@edcronos)
Posts: 1006
Noble Member
 

já que proibir a planilha é falho

caso os dados sejam importantes
pode se ter uma macro
ou codigo de ribbon

que embaralhe e desembaralhe os dados de acordo com o codigo do HD
pelo menos os dados importantes

tipo
a macro pega o codigo do hd filtra apenas os nomeros

na abertura da planilha:
divide os valores numericos da planilha por esse valor

quando salva a planilha:
multiplica os valores numericos da planilha por esse valor

para textos:
uma macro para
adicionar no inicio do texto as letras do codigo do HD, embaralhar as letras de acordo com eo valor numerico do hd

claro que tem que estudar as brechas do esquema

 
Postado : 09/02/2015 12:32 pm
(@joao_a)
Posts: 0
New Member
Topic starter
 

Então quer dizer que fazer desta maneira pelo codigo do HD é muito complexo, uma pessoa que não tem muito conhecimento não consegue desenvolver o sistema?

 
Postado : 11/02/2015 2:18 pm