Új hozzászólás Aktív témák

  • sztanozs

    veterán

    válasz psg5 #49396 üzenetére

    Ha garantált a felhasználónevek egyedisége, akkor lehet azzal is játszani. Látrehozol mindenkinek egy sheet-et, ahol a sheet neve a felhasználónév, és beállítod az alábbi makrót a ThisWorkbook alá:
    Private Sub Workbook_Open()
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    Dim WSHnet As Object, ws As Worksheet, UserID As String
    Set WSHnet = CreateObject("WScript.Network")
    UserID = WSHnet.UserName
    Set WSHnet = Nothing

    For Each ws In Worksheets
    If ws.Name = "Unauthorized" Then
    ws.Visible = xlSheetVisible
    ElseIf ws.Name = UserName Then
    ws.Visible = xlSheetVisible
    Worksheets("Unauthorized").Visible = xlSheetVeryHidden
    Else
    ws.Visible = xlSheetVeryHidden
    End If
    Next
    Application.ScreenUpdating = True
    Application.EnableEvents = True
    End Sub

    Private Sub Workbook_AfterSave(ByVal Success As Boolean)
    Workbook_Open
    End Sub

    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Application.ScreenUpdating = False
    For Each ws In Worksheets
    If ws.Name = "Unauthorized" Then
    ws.Visible = xlSheetVisible
    Else
    ws.Visible = xlSheetVeryHidden
    End If
    Next
    End Sub

Új hozzászólás Aktív témák