Aprenda a criar log em Excel VBA
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.
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