Hide Columns based on network username

C

Chris

I have the following code below located in the 'This Workbook'. This
code works great for hiding worksheets from certian users but I have a
situation now where I need to hide certain columns in "worksheet2" from
certain users. I am not sure if I have to add some sort of hide columns
code to
'worksheet2' or if I can somehow add it to the below code somwhere. I
am still pretty much a beginner, so any detailed answer on what exaclt
yI have to do would be very helpful. Thanks.


Private Sub Workbook_Open()
Application.ScreenUpdating = False
FrontpageFirst
On Error Resume Next
sStr = fOSUserName()
x = sStr
Select Case x
Case "chris"
Worksheets("worksheet1").Visible = True
Worksheets("worksheet2").Visible = True
Worksheets("worksheet3").Visible = True




Case Else
For i = 2 To Worksheets.Count
Worksheets(i).Visible = xlVeryHidden
Next
End Select
Worksheets(2).Activate
Worksheets(1).Visible = xlVeryHidden
Application.ScreenUpdating = False
Dim cb As CommandBar
CreateMenuBar NewCommandBar
End Sub

Sub FrontpageFirst()
Dim page As String
page = "Unauthorized"
On Error Resume Next
Worksheets(page).Visible = True
If Worksheets(1).Name = page Then
Worksheets(1).Activate
Else
Worksheets(page).Activate
If Err = 0 Then
ActiveSheet.Move before:=Worksheets(1)
Else
Worksheets.Add before:=Worksheets(1)
Worksheets(1).Name = page
End If
End If
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
FrontpageFirst
For i = 2 To Worksheets.Count
Worksheets(i).Visible = xlVeryHidden
Next
Application.DisplayAlerts = True
ActiveWorkbook.Save
Application.DisplayAlerts = False
On Error Resume Next
End Sub
 
C

Chris

Jim,

I could not get this to work, meaning they did not hide.
I tried a number of different things like

Case "chris"
Worksheets("worksheet1").Visible = True
Worksheets("worksheet2").Visible = True
Columns("A:C").Hidden = True
Worksheets("worksheet3").Visible = True

and I tried

Worksheets("worksheet1").Visible = True
Worksheets("worksheet2").Visible = True
Worksheets("worksheet3").Visible = True
With
Worksheets("worksheet2")
Columns("A:C").Hidden = True
End With

didn't work either

any suggestions?







Jim Jackson wrote:

Just add the line:
 
C

Chris

Thanks Jim, it worked!


Jim said:
That is using the application username which is different form the network
username. The OP wants Environ("UserName") which will return the network
logon user name. There are some cases where you need to use an API to get the
correct network user name but they are few and far between...
 

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