terça-feira, setembro 19, 2017
Home » Office » MS Excel » VBA dica: Limite o número de vezes que um arquivo XLS e XLSX pode ser aberto

VBA dica: Limite o número de vezes que um arquivo XLS e XLSX pode ser aberto

Suponha que você queira enviar uma versão demo de um arquivo para um usuário examinar, mas você não quer que ele seja utilizado mais do que um determinado número de vezes, talvez seja uma versão trial que só deseje liberar após um determinado pagamento. Há uma série de abordagens possíveis para esta situação, mas aqui eu vou mostrar para o uso de algumas declarações VBA simples, chamadas SaveSetting e GetSetting .

Aqui está uma imagem de todo o procedimento. É executado cada vez que o arquivo é aberto. Se o código VBA for protegido por senha, o usuário não será capaz de evitar facilmente que o programa de demonstração expire.

Código VBA que é executado quando o livro é aberto

A sintaxe para GetSetting é:

Sintaxe para GetSetting

… E para SaveSetting é:

Sintaxe para SaveSetting

Cada um dos parâmetros contém um nome arbitrário que você fornecer para acessar informações armazenadas em ou ler a partir do registo.

O AppName é mais como uma categoria principal, o ponto é uma subcategoria e o Key é ainda uma outra categoria. Ele fica mais claro com o exemplo. A primeira vez que este arquivo é aberto, a instrução N = GetSetting (“Demo”, “Demo”, “Demo”, 0) +1 é executado. O quarto parâmetro é o valor padrão dado se nenhuma configuração é, na verdade, já armazenadas.Então, pela primeira vez, o GetSetting retorna 0 . Adicionando 1 para esta armazena um 1 na variável n .

Então n não é 5 (ainda), e ele corre para o SaveSetting . A declaração SaveSetting “Demo”, “Demo”, “Demo”, n agora armazena o valor 5 no registro. A próxima vez que o arquivo for aberto, o GetSetting retorna esse 1 , e 1 é adicionado a ele e armazenado em n . Ainda não 5 , e agora um 2 é armazenado no registro, etc. Eventualmente, o GetSetting retorna 5 , n é 6 , eo programa termina depois de dar uma mensagem para o usuário.

Para repor esta a zero em sua própria máquina, você pode executar SaveSetting “Demo”, “Demo”, “Demo”, 0, ou você pode executar uma outra variação do VBA, chamado DeleteSetting . Esta sintaxe é:

Sintaxe para DeleteSetting

Como você pode ver, a Seção e Key são opcionais. Então execução DeleteSetting “Demo”limpa o registro do NomeAplic bem como Seção e Key .

Por último, o valor armazenado não se limita a números como tenho mostrado neste exemplo, ele pode ser qualquer string que você queira, usando-o como uma área de armazenamento para qualquer finalidade.

Bob Umlas, Excel MVP

Traduzido de: http://blogs.office.com/2012/01/04/vba-tip-limit-the-number-of-times-a-file-can-be-opened/

Sobre Diego Duarte

Diego Duarte Atua como coordenador de NOC, toca um violãozinho nas horas vagas e tenta eternamente entender o que o fez escolher TI

Veja também!

Excel – Formula para separar nome e sobrenome

Saudações, leitores Após algum tempo procurando uma formula efetiva para separar nome e sobre em …

3 comentários

  1. Diego Silva

    Boa dica Diego.
    Estou cursando o vba voltado a excel pelo curso adv, http://www.cursoadv.com.br.
    Gostaria de saber se esta ferramenta funciona também para planilhas.

  2. Emmanuel Ferraz

    E após o limite como vou acessar o ambiente de desenvolvimento? Ele abre normalmente? Sou iniciante com esse tipo de programação.

Este artigo lhe foi útil? comente e ajude outros acrescentando seu ponto de vista!