About Me

A minha foto
JRod - PORTUGAL
Microsoft [MVP] - Excel (10º ano consecutivo)
Ver o meu perfil completo
Com tecnologia do Blogger.

Seguidores

Estatisticas

Free Blog Counter

eXTReMe Tracker
2006-07-20
Por vezes, podemos ter necessidade de saber qual foi o utilizador que acedeu e quando acedeu a uma determinada worksheet, nomeadamente quando se trabalha em rede.

O Código:

Private iNextRow As Long
Const HIDDEN_SHEET As String = "Sheet3"    ' ou outro nome


Private Sub Workbook_Open()
     With Worksheets(HIDDEN_SHEET)
         .Range("A1").Value = Environ("UserName")
         .Range("B1").Value = Format(Date + Time, _
                         "dd mmm yyyy hh:mm:ss")
     End With
     iNextRow = 2


End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, _
                                 ByVal Target As Range)
     On Error GoTo wb_exit
     Application.EnableEvents = False
     If Sh.Name <> HIDDEN_SHEET Then
         With Worksheets(HIDDEN_SHEET)
             .Range("A" & iNextRow).Value = Environ("UserName")
             .Range("B" & iNextRow).Value = Format(Date + Time, _
                                     "dd mmm yyyy hh:mm:ss")
         End With
     End If


wb_exit:
     Application.EnableEvents = True
End Sub


NOTA: Este código deve ser colocado no próprio workbook, porque é um evento dele. Para tal, clicar no ícone que está à esquerda do comando chamado "File", no Toolbar , com a tecla direita do rato e escolher a opção "View Code". Copiar o código para o editor de VBE. Depois, sair e gravar o ficheiro. Quando se abrir novamente, ver-se-á, na Sheet3 (ou naquela que determinámos no código), o nome do utilizador, a data e hora do último acesso.

  • Tópicos relacionados:


  •  Environ Function - Microsoft Visual Basic Help (com o editor de VBE activo)

     Environ Function (MSDN Library)

     Environ Function Example