View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Dan R. Dan R. is offline
external usenet poster
 
Posts: 220
Default Identify User, Copy/Paste Login Info. to File on C:\

Here's a function to get the username:

Private Declare Function GetUserName Lib "advapi32.dll" _
Alias "GetUserNameA" ( _
ByVal lpBuffer As String, nSize As Long) As Long

Public Function ReturnNTUserName() As String
Dim rString As String * 255, sLen As Long
Dim NWUserName As String, tString As String
tString = ""
On Error Resume Next
sLen = GetUserName(rString, 255)
sLen = InStr(1, rString, Chr(0))
If sLen 0 Then
tString = Left(rString, sLen - 1)
Else
tString = rString
End If
On Error GoTo 0
NWUserName = Left(Right(tString, _
Len(tString) - 1), Len(tString) - 2)
ReturnNTUserName = Left(tString, 1) _
+ NWUserName + Right(tString, 1)
End Function

--
Dan

On Apr 1, 1:02 pm, ryguy7272
wrote:
I originally posted this a few days ago and got only one response, which
although helpful, didn't allow me to do what I was hoping to do. I'm
wondering if there is a way to create a private sub to identify someone who
has opened a spreadsheet, by the windows login ID, and also get the time and
date that the spreadsheet was opened. I'd like to copy/paste this information
to a Word document (or a text file), which could be located on the C-drive.
Ideally, I'd like to create a running log of all instances of users opening
the spreadsheet, so the 2nd, 3rd, 4th, etc. users would have to be appended
to the Word document so that the original time stamps were not overwritten.

I have a time stamping macro, but everything is done right in Excel,
not outside of Excel.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("$A$1:$b$400")) Is Nothing Then
Application.EnableEvents = False
Application.ScreenUpdating = False
With Worksheets("Sheet2")
.Select
.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Select
ActiveCell.Value = Target.Address
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = Target.Value
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = Now()
ActiveCell.NumberFormat = "mm/dd/yy"
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = InputBox("You've made a change to the Rates tab.
Please enter your name here for historical purposes.")
Application.EnableEvents = True
Application.ScreenUpdating = True
End With
End If
End Sub

How can I send this data to a destination outside of Excel, and append data
as login information of users opening the file?

Regards,
Ryan--

--
RyGuy