Bloquear Uso de Planilhas Verificando o Nome do Computador

API's do Windows no Excel com VBA
API’s do Windows no Excel com VBA
8 de março de 2011
Função de Depreciação de Patrimônio - BD
Função de Depreciação de Patrimônio – BD
8 de março de 2011

Objetivo: Demonstrar qual o nome do computador atual, pode ser usado para permissão de utilização de um arquivo Excel.

Este código VBA serve para bloquear a utilização em computadores não autorizados, por exemplo se você vendeu uma licença de uso da sua aplicação e não quer que ela seja utilizada em outros computadores, ou se somente um usuário pode utilizá-la por ser o único apto a tal.

Para incluir este código VBA você pode utilizar o exemplo do artigo Habilitando a Guia Desenvolvedor e Copiando Procedimentos VBA da internet.

'Colocar no início do módulo esta linha de código por ser uma API do Windows

Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, ByRef nSize As Long) As Long
'Retorna o nome do computador
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 lsRetornaNomeComputador()
    Dim CompName As String

    CompName = lfNomeComputador
    If CompName <> "Rieper" Then
       MsgBox "Este computador não tem direito de executar esta aplicação."
       ActiveWorkBook.Close SaveChanges:= False
   End If
End Sub

Abraço

Marcos Rieper


Clique aqui e leia mais sobre Excel VBA. https://www.guiadoexcel.com.br/vba/ O Guia do Excel foi criado por Marcos Rieper e oferece artigos, dicas, tutoriais e modelos de planilhas prontas. Aqui você encontra tudo sobre Excel, seja de nível básico, intermediário,  avançado e VBA. O Guia do Excel oferece diversos materiais completamente gratuitos para download. Navegue em nosso site e confira! Conheça também a nossa Loja do Excel https://loja.guiadoexcel.com.br/

19 Comentários

  1. Achei bastante interessante as informações postada neste post e decidi usá-las em uma planilha que criei para gerar recibos de forma simples. Na qual ao acessa-la pela primeira vez é solicitado um código serial, sendo que uma vez informado corretamente ela não mas solicitara o mesmo, a não ser se um usuário simplesmente copiar a planilha de um PC licenciado e colar em outro, caso ocorra isso, utilizei as informações do post acima para bloquear o acesso e solicitar a isenção do código serial.
    Caso desejem explora-la é só fazer download, ai vai o link:

    http://raphaelnnoe.wordpress.com/excel/

  2. RaphaelNNoé disse:

    Peço desculpas pela falha no link, e quero dizer que o mesmo já está CORRIGIDO.
    Obs.: a chave para ativação é:
    ABCD-EFGH-1234

  3. Walter disse:

    Raphael,

    Parabéns!Ficou muito bom, não sabia que era possível criar um exe para uma planilha….

    Marcos,

    Seria legal, nos mostrar como se faz isso, e por qual motivo criar um exe para uma planilha.

    Abs

  4. Vladimir disse:

    Olá Amigo.
    Preciso muito dessa função porem não consegui usa-la no 2003.
    Essa função só funciona no 2007 pra cima?
    Será que vc poderia postar de forma mais detalhada (passo-a-passo) sou leigo em vb.
    Forte abraço e muito obrigado.
    Parabéns pelo site.

  5. jose disse:

    Mas como ficaria para não abrir em outra máquina: Apenas informou o nome da máquina. O que fazer????

  6. Evaldo Junior disse:

    Como posso dar acesso a vários computadores em rede? Tentei usando Or, mas retorna erro… Se alguem souber posta ai.

    Obrigado,

    “Escolha um trabalho que ama e não terá que trabalhar um único dia em sua vida.”

  7. Vitor disse:

    Obtive sucesso em executar na planilha disponível para download, porém quando executo o código em minha planilha retorna o erro: “Erro de compilação, é impossível localizar o projeto ou a biblioteca”, e além disso ocasionou outros erro em outros módulos, o qual deixaram de funcionar corretamente, por favor me ajude ! aguardo respostas e agradeço por essa e outras dicas que ja utilizei, aguardo anciosamente respostas.

  8. Sofia disse:

    Raphael, você poderia corrigir este link? Achei muito interessante a sua idéia

  9. Marcos disse:

    Amigo, não entendi como usar este código para deixar a planilha sendo possível o uso em apenas 1 computador. É possível me detalhar o procedimento a ser realizado.

    Abraços

  10. Celso disse:

    Pode ser usar também a função Environ

    Exemplo:

    Sub GetUserName()

    Dim nomeUsuario As String
    nomeUsuario = Environ(“username”)
    Debug.Print nomeUsuario

    end sub

    http://msdn.microsoft.com/pt-br/library/gg264486(v=office.15).aspx

  11. Vitor disse:

    O link do site do Raphael não está funcionando.

  12. ALEX LIMA DOS SANTOS disse:

    Boa noite Marcos,

    Tive problemas ao abrir, a planilha informa que deve ser atualizado a função para sistema de 64bits.

    Como corrigir?

  13. Thiago Nunes disse:

    Fiquei com uma pequena dúvida… É para colocar em qualquer módulo ou tenho que incluir no “ThisWorkBook” e forçar a execução da função no thisworkbook_open?

    • Marcos Rieper disse:

      Olá Thiago,

      Na verdade pode ser usado como você achar melhor. Eu acho que neste método fica melhor porque ele bloqueia a abertura diretamente, mas pode ser colocado em outros locais do código sem problemas.

  14. Jose disse:

    Viva Marcos, interessante o codigo, por acaso nao estava a dar certo, mas ajustei onde vem
    If lBuffLen > 0 Then por If lBuffLen & gt Then
    If CompName <> “Rieper” Then Por If CompName “Rieper” Then

    E esta funcionando.

    Agora, peco que ajude no seguinte. Eu gostaria que o usuario ficasse inobido de acessar qualquer outra coisa na planilha antes de executar o codigo deste post, de modo a obriga-lo a executar o codigo antes de aceder ao resto da planilha. Please!!!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Inscreva-se no nosso canal do Youtube!


Junte-se ao nosso canal do Youtube. Começamos em abril de 2016, mas já temos mais de 06:00 h de treinamentos gratuitos e este número irá aumentar. Vídeos novos todos os sábados.