Enable Command Button base on UserName

D

Doctorjones_md

I have a Command Button on a worksheet that I only want to display if a
specified User Opens the workbook.

I have the following code:

(in a UserName module)
=================
' By Chris Rae, 14/6/99, 3/9/00.
Option Explicit
' This is used by GetUserName() to find the current user's
' name from the API
Declare Function Get_User_Name Lib "advapi32.dll" Alias _
"GetUserNameA" (ByVal lpBuffer As String, _
nSize As Long) As Long
Function GetUserName() As String
Dim lpBuff As String * 25
Dim txtName As String

Get_User_Name lpBuff, 25
GetUserName = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1)
txtName = lpBuff
MsgBox ("Welcome to the NEW Pricing Tool " & (lpBuff)), vbOKOnly


End Function

====================
How would I modify the code to enable the cmdQC button? I was thinking
something like the following ...

(In the code for the worksheet)
Sub Auto_Open()
GetUserName
If lpBuff = 'Person's UserName' then cmdQC.visible.True

End Sub

Many thanks (in advance) for your assistance.

Shane
 
R

Ron de Bruin

Try this

If Environ("UserName") = "???" Then
ActiveSheet.Shapes("CommandButton1").Visible = True
Else
ActiveSheet.Shapes("CommandButton1").Visible = False
End If
 
D

Doctorjones_md

Ron,

I tried your code -- is this supposed to be in a module, or in the code for
the worksheet? Is it something like this ...

Private Sub QC()

If Environ("UserName") = "???" Then
ActiveSheet.MySheet("cmd").Visible = True
Else
ActiveSheet.MySheet("CommandButton1").Visible = False
End If

End Sub
========================================================
 
R

Ron de Bruin

In your example you use
You must copy this in a normal module
See
http://www.cpearson.com/excel/events.htm

Use this for user "ron" with the button on "Sheet1"
It will run automatic if you open the workbook

Sub Auto_Open()
If Environ("UserName") = "Ron" Then
Sheets("Sheet1").Shapes("CommandButton1").Visible = True
Else
Sheets("Sheet1").Shapes("CommandButton1").Visible = False
End If
End Sub
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top