So i'm new to VBA (sorry), i have a pretty lengthy excel sheet that perfroms alot of different calc. behind the scene. Most people don't need any access. THey just fill out the face sheet and hit a macro that will submit and print. Some need access to one sheet, and a couple need access to all of it...
I attempted to put togather two complete different vba codes i've made/stolen and modified. The login works just fine, but i can't seem to make the sheets appear/disappear based on who logs in. Any Help would be awesome thank you.
Option Explicit
Private Sub Workbook_Open()
Application.EnableCancelKey = xlDisabled
UserForm1.Show
Dim AccLevel As String
Dim FullName As String
Dim x As Integer
Dim ws As Worksheet
Application.ScreenUpdating = False
On Error Resume Next
x = Application.Match(Application.UserName, Worksheets("Users").Columns("A"), 0) ' manually edit this and hide
If IsNumeric(x) And x > 0 Then 'if user was found
AccLevel = Worksheets("Users").Cells(x, 4)
FullName = Worksheets("Users").Cells(x, 3)
Else 'if username was not found
AccLevel = "Read only Access"
End If
Select Case AccLevel
Case "Admin"
For Each ws In ThisWorkbook.Worksheets
ws.Unprotect Password:=([Admin])
Next
Call unhide
Sheets("Reagent Face Sheet").Select
Case "Reagent"
For Each ws In ThisWorkbook.Worksheets
Next
Sheets("Reagent Lots").Visible = True
Sheets("Reagent Face Sheet").Visible = xlSheetVeryHidden
Sheets("Names").Visible = xlSheetVeryHidden
Sheets("Instruments").Visible = xlSheetVeryHidden
Sheets("QC, Means & Sd's").Visible = xlSheetVeryHidden
Sheets("Patient Allowable").Visible = xlSheetVeryHidden
Sheets("Patient Diff").Visible = xlSheetVeryHidden
Sheets("Patient Accept!").Visible = xlSheetVeryHidden
Sheets("Users").Visible = xlSheetVeryHidden
Case "User"
For Each ws In ThisWorkbook.Worksheets
Next
Sheets("Reagent Face Sheet").Visible = True
Sheets("Reagent Lots").Visible = xlSheetVeryHidden
Sheets("Names").Visible = xlSheetVeryHidden
Sheets("Instruments").Visible = xlSheetVeryHidden
Sheets("QC, Means & Sd's").Visible = xlSheetVeryHidden
Sheets("Patient Allowable").Visible = xlSheetVeryHidden
Sheets("Patient Diff").Visible = xlSheetVeryHidden
Sheets("Patient Accept!").Visible = xlSheetVeryHidden
Sheets("Users").Visible = xlSheetVeryHidden
Case Else
AccLevel = "Read only Access"
For Each ws In ThisWorkbook.Worksheets
ws.Protect Password:=([Admin]), DrawingObjects:=True, Contents:=True, Scenarios:=True, UserInterFaceOnly:=True
Next
Sheets("Reagent Lots").Visible = xlSheetVeryHidden
Sheets("Names").Visible = xlSheetVeryHidden
Sheets("Instruments").Visible = xlSheetVeryHidden
Sheets("QC, Means & Sd's").Visible = xlSheetVeryHidden
Sheets("Patient Allowable").Visible = xlSheetVeryHidden
Sheets("Patient Diff").Visible = xlSheetVeryHidden
Sheets("Patient Accept!").Visible = xlSheetVeryHidden
Sheets("Users").Visible = xlSheetVeryHidden
End Select
End Sub
Private Sub Workbook_BeforeClose(cancel As Boolean)
Application.ScreenUpdating = False
Sheets("Reagent Face Sheet").Visible = True
Sheets("Reagent Lots").Visible = False
Sheets("Names").Visible = False
Sheets("Instruments").Visible = False
Sheets("QC, Means & Sd's").Visible = False
Sheets("Patient Allowable").Visible = False
Sheets("Patient Diff").Visible = False
Sheets("Patient Accept!").Visible = False
Sheets("Users").Visible = False
Application.ScreenUpdating = True
End Sub
Bookmarks