Aprenda a criar log em Excel VBA. Neste artigo vamos aprender a criar log em nossas planilhas e projetos de um jeito fácil e simples.
Podemos incorporar estes comados em nossos formulários desenvolvidos em VBA ou em nossas planilhas.
Vamos supor que você tem um funcionário que usa uma planilha desenvolvida por você e gostaria de saber o horário que está planilha foi aberta este comando grava o horário que foi aberta a planilha, dia, nome computador, usuário logado.
Mas para que o seu funcionário não fique sabendo que você está monitorando podemos ocultar a planilha de log e só você abrir quando precisar.
Agora veremos como implantar log em nossas planilhas e projetos.
Vamos as passos.
Aprenda a criar log em Excel VBA. neste exemplo vou usar uma tela de login que criamos em um artigo neste blog e vamos incorporar a programação neste projeto. Para que ao clicar em abrir a tela de login o log fique gravado no projeto.
Link para baixar a planilha para estudo de caso neste artigo.
Bom agora que você já tem o seu projeto vamos dar continuidade na programação.
Abrir o projeto e vamos até o ambiente VBA.
Clique no Form Tela Login e vamos até o botão entrar.
Dentro do botão entrar vamos inserir o código fonte abaixo onde acrescentamos os comando do log.
Call nome_maquina
If Me.txt_user = “” Then
MsgBox “Preencha o campo Usuário”, vbExclamation, “Erro Login”
Me.txt_user.SetFocus
Exit Sub
ElseIf Me.txt_senha = “” Then
MsgBox “Preencha o campo senha”, vbExclamation, “Erro Login”
Me.txt_senha.SetFocus
Exit Sub
End If
Dim senha As String
Set plan = Sheets(“Users”)
Set plan_log = Sheets(“Log”)
USER = txt_user
plan.Select
‘Localiza um registro
linha = plan.Range(“B:B”).Find(USER).Row
senha = plan.Cells(linha, 3)
nome = plan.Cells(linha, 6)
If senha = Me.txt_senha Then
id_log = plan_log.Range(“A” & Rows.Count).End(xlUp).Row
plan_log.Cells(id_log + 1, 1) = id_log
plan_log.Cells(id_log + 1, 2) = Format(Now, “MM/DD/YYYY”)
plan_log.Cells(id_log + 1, 3) = Format(Now, “HH:MM:SS”)
plan_log.Cells(id_log + 1, 4) = “Logado”
plan_log.Cells(id_log + 1, 5) = nome
plan_log.Cells(id_log + 1, 6) = nome_computador
plan_log.Cells(id_log + 1, 7) = nome_user_maquina
Unload Me
Sheets(“Users”).Select
End If
Exit Sub
Agora precisamos criar um modulo para a função global onde iremos chamar ela no botão entrar.
Option Explicit
‘Criação das variáveis globais para utilização em todos os módulos
Global nome_computador As String
Global nome_user_maquina As String
Global sessao As Long
Sub nome_maquina()
nome_computador = Environ(“Computername”)
nome_user_maquina = Environ(“USERNAME”)
End Sub
Pronto agora está funcionado nosso Log.
Comando utilizado para planilhas simples sem formulários colocar os fonte abaixo no evento Workbook_Open.
Call nome_maquina
Set plan_log = Sheets(“Log”)
‘torna a guia Log visível para o código
‘plan_log.Visible = xlSheetVisible
‘plan_log.Visible = xlSheetVeryHidden
id_log = plan_log.Range(“A” & Rows.Count).End(xlUp).Row
plan_log.Cells(id_log + 1, 1) = id_log
plan_log.Cells(id_log + 1, 2) = Format(Now, “MM/DD/YYYY”)
plan_log.Cells(id_log + 1, 3) = Format(Now, “HH:MM:SS”)
plan_log.Cells(id_log + 1, 4) = “Logado”
plan_log.Cells(id_log + 1, 5) = nome_computador
plan_log.Cells(id_log + 1, 6) = nome_user_maquina
plan_log.Cells(id_log + 1, 7) = nome_user_maquina
Sheets(“Log”).Select
Exit Sub
End Sub
Olá, amigos! Inscreva-se em nosso canal do Youtube para não perder os próximos vídeos.
Gráfico de mapas no Excel, veja que interessante está ferramenta onde mostra a população por…
Calendário anual no Excel, desenvolvido com as funções do Excel e muito útil para planejamento…
Formatação condicional no Excel na linha inteira, veja que interessante está formatação no Excel, conforme…
Macros para armazenar dados no Excel, vamos entender ou pouco sobre o conceito de macros…
Função ÉERROS no Excel é utilizada para verificar se uma célula contém algum tipo de…
Função subtotal no Excel permite calcular subtotais de uma lista ou intervalo de dados, aplicando…
View Comments
Gostei muito!!!
Que ótimo Lucas.
se o log precisar ser em uma planilha abaixo, tentei porem deu erro, meu log nao pode ficar na mesma planilha.
por exemplo
Set plan_log = Workbooks.Open("\\fs.e.com.br\Ca\Opera\urier\Controles\log.xlsx", _
Password:="xxxx")
Worksheets("log").Activate
Range("A" & Rows.Count).End(xlUp).Row
plan_log.Cells(id_log + 1, 1) = id_log
plan_log.Cells(id_log + 1, 2) = Format(Now, "MM/DD/YYYY")
plan_log.Cells(id_log + 1, 3) = Format(Now, "HH:MM:SS")
plan_log.Cells(id_log + 1, 5) = nome_computador
plan_log.Cells(id_log + 1, 6) = nome_user_maquina
ta dando erro no evento