ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Users on a Shared workbook (https://www.excelbanter.com/excel-programming/297660-users-shared-workbook.html)

gr8guy

Users on a Shared workbook
 
Hi,

Can anybody help me with this?

i have a shared workbook in which there are some sheets with names of Users as Sheet names. What i want to happen is that any user who logs in to the workbook, will be able to view the sheet with his name reflecting as the sheet name. the rest of the Sheets of other Users logged in to that same workbook will be hidden from him & vice versa for other Users.

I tried using the following code, but not working. the First User who logged in, his sheet is visible on all users desktop on the network. Probably because the ToolsShareWorkbook option shows that all users below logged in & the IF statement reads True for the 1st person who logs in.


Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
Application.ScreenUpdating = False
If Application.UserName = "aju" Then
ActiveSheet.Range("a1:a65536").Rows.Hidden = False
For Each Sh In Sheets
If Not Sh.Name = "Eijaz" Then
Sh.Visible = False
End If
Next Sh

ElseIf Application.UserName = "aireen" Then
For Each Sh In Sheets
ActiveSheet.Range("a1:a65536").Rows.Hidden = False
If Not Sh.Name = "Aireen" Then
Sh.Visible = False
End If
Next Sh

ElseIf Application.UserName = "zaki" Then
ActiveSheet.Range("a1:a65536").Rows.Hidden = False
For Each Sh In Sheets
If Not Sh.Name = "Zaki" Then
Sh.Visible = False
End If
Next Sh

' THIS IS FOR THE SUPERVISOR WHO WILL BE ABLE TO SEE ALL THE USER SHEETS ON HIS/HER 'COMPUTER DESK.
ElseIf Application.UserName = "nairg" Then
ActiveSheet.Range("a1:a65536").Rows.Hidden = False
For Each Sh In Sheets
Sh.Visible = True
Next Sh

Else
' IF SOME USER OUTSIDE THE TEAM TRIES TO OPEN THE FILE, WONT BE ABLE TO VIEW THE FILE. FILE WILL CLOSE.
For Each Sh In Sheets
ActiveSheet.Range("a1:a65536").Rows.Hidden = True
Sh.Visible = True
Next Sh
MsgBox "Access Denied for Outside Teams!"
ThisWorkbook.Close savechanges:=False
Application.ScreenUpdating = True

End If

End Sub

Please help!

Rgds,

Eijaz



Arvi Laanemets

Users on a Shared workbook
 
Hi

Give for every user his own (1-scheet password-protected) workbook. For
supervisor, create a workbook, which has a sheet for every user, where this
users data are displayed through links. All are happy, and anybody can open
his/her workbook at any time - no messages about being the workbook in use
by another user anymore.

--
Arvi Laanemets
(Don't use my reply address - it's spam-trap)


"gr8guy" wrote in message
...
Hi,

Can anybody help me with this?

i have a shared workbook in which there are some sheets with names of Users
as Sheet names. What i want to happen is that any user who logs in to the
workbook, will be able to view the sheet with his name reflecting as the
sheet name. the rest of the Sheets of other Users logged in to that same
workbook will be hidden from him & vice versa for other Users.

I tried using the following code, but not working. the First User who logged
in, his sheet is visible on all users desktop on the network. Probably
because the ToolsShareWorkbook option shows that all users below logged in
& the IF statement reads True for the 1st person who logs in.


Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
Application.ScreenUpdating = False
If Application.UserName = "aju" Then
ActiveSheet.Range("a1:a65536").Rows.Hidden = False
For Each Sh In Sheets
If Not Sh.Name = "Eijaz" Then
Sh.Visible = False
End If
Next Sh

ElseIf Application.UserName = "aireen" Then
For Each Sh In Sheets
ActiveSheet.Range("a1:a65536").Rows.Hidden = False
If Not Sh.Name = "Aireen" Then
Sh.Visible = False
End If
Next Sh

ElseIf Application.UserName = "zaki" Then
ActiveSheet.Range("a1:a65536").Rows.Hidden = False
For Each Sh In Sheets
If Not Sh.Name = "Zaki" Then
Sh.Visible = False
End If
Next Sh

' THIS IS FOR THE SUPERVISOR WHO WILL BE ABLE TO SEE ALL THE USER SHEETS ON
HIS/HER 'COMPUTER DESK.
ElseIf Application.UserName = "nairg" Then
ActiveSheet.Range("a1:a65536").Rows.Hidden = False
For Each Sh In Sheets
Sh.Visible = True
Next Sh

Else
' IF SOME USER OUTSIDE THE TEAM TRIES TO OPEN THE FILE, WONT BE ABLE TO
VIEW THE FILE. FILE WILL CLOSE.
For Each Sh In Sheets
ActiveSheet.Range("a1:a65536").Rows.Hidden = True
Sh.Visible = True
Next Sh
MsgBox "Access Denied for Outside Teams!"
ThisWorkbook.Close savechanges:=False
Application.ScreenUpdating = True

End If

End Sub

Please help!

Rgds,

Eijaz





gr8guy

Users on a Shared workbook
 
hi arvi,

i cant have different workbooks for different agents. and also want to have the desired workbook coded in VBA, with sheets for every agent & To limit Users using shared workbook to their own worksheets!


rgds,

eijaz

=====================================

"Arvi Laanemets" wrote in message ...
Hi

Give for every user his own (1-scheet password-protected) workbook. For
supervisor, create a workbook, which has a sheet for every user, where this
users data are displayed through links. All are happy, and anybody can open
his/her workbook at any time - no messages about being the workbook in use
by another user anymore.

--
Arvi Laanemets
(Don't use my reply address - it's spam-trap)


"gr8guy" wrote in message
...
Hi,

Can anybody help me with this?

i have a shared workbook in which there are some sheets with names of Users
as Sheet names. What i want to happen is that any user who logs in to the
workbook, will be able to view the sheet with his name reflecting as the
sheet name. the rest of the Sheets of other Users logged in to that same
workbook will be hidden from him & vice versa for other Users.

I tried using the following code, but not working. the First User who logged
in, his sheet is visible on all users desktop on the network. Probably
because the ToolsShareWorkbook option shows that all users below logged in
& the IF statement reads True for the 1st person who logs in.


Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
Application.ScreenUpdating = False
If Application.UserName = "aju" Then
ActiveSheet.Range("a1:a65536").Rows.Hidden = False
For Each Sh In Sheets
If Not Sh.Name = "Eijaz" Then
Sh.Visible = False
End If
Next Sh

ElseIf Application.UserName = "aireen" Then
For Each Sh In Sheets
ActiveSheet.Range("a1:a65536").Rows.Hidden = False
If Not Sh.Name = "Aireen" Then
Sh.Visible = False
End If
Next Sh

ElseIf Application.UserName = "zaki" Then
ActiveSheet.Range("a1:a65536").Rows.Hidden = False
For Each Sh In Sheets
If Not Sh.Name = "Zaki" Then
Sh.Visible = False
End If
Next Sh

' THIS IS FOR THE SUPERVISOR WHO WILL BE ABLE TO SEE ALL THE USER SHEETS ON
HIS/HER 'COMPUTER DESK.
ElseIf Application.UserName = "nairg" Then
ActiveSheet.Range("a1:a65536").Rows.Hidden = False
For Each Sh In Sheets
Sh.Visible = True
Next Sh

Else
' IF SOME USER OUTSIDE THE TEAM TRIES TO OPEN THE FILE, WONT BE ABLE TO
VIEW THE FILE. FILE WILL CLOSE.
For Each Sh In Sheets
ActiveSheet.Range("a1:a65536").Rows.Hidden = True
Sh.Visible = True
Next Sh
MsgBox "Access Denied for Outside Teams!"
ThisWorkbook.Close savechanges:=False
Application.ScreenUpdating = True

End If

End Sub

Please help!

Rgds,

Eijaz







All times are GMT +1. The time now is 10:08 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com