Delen via

tabbladen zichtbaar maken met gebruikersnaam

Anoniem
2019-10-29T13:28:26+00:00

Beste,

ik heb 6 tabbladen in een excelfile, gebruiker X mag enkel tabblad 1 zien, gebruiker 2 enkel tabblad 2, en gebruiker 3 & 4 tabbladen 1,2, 3 en 4.

Welke code gebruik ik hiervoor in visual basic? Ik heb al verschillende pogingen gedaan maar het lukt mij niet.

Kan er iemand mij helpen aub?

bedankt,

Microsoft 365 en Office | Excel | Voor thuisgebruik | Windows

Vergrendelde vraag. Deze vraag is gemigreerd vanuit de Microsoft Ondersteuning-community. U kunt met een stem aangeven of de inhoud nuttig is, maar u kunt geen opmerkingen of antwoorden toevoegen of de vraag volgen.

0 opmerkingen Geen opmerkingen

8 antwoorden

Sorteren op: Meest nuttig
  1. Anoniem
    2019-10-30T19:05:48+00:00

    Hi

    zeker niet xlSheedVeryHidden' die bestaat niet :) wel xlSheetVeryHidden

    let op de laatste letter van Sheet

    visible lijkt me duidelijk.

    het verschil tussen very en gewoon hidden is als je via Excel zelf wilt zichtbaar maken lukt niet van veryhidden met gewoon hidden lukt dit wel.

    conclusie veryhdden is beter voor de veiligheid. Echter als je gebruiker ook de vbe kent kan hij dit omzeilen

    Jan

    Was dit antwoord nuttig?

    0 opmerkingen Geen opmerkingen
  2. Anoniem
    2019-10-30T14:29:55+00:00

    Dag JP Ronse,

    Bedankt voor de code, ik heb het aangepast en ingevoerd. Ik ben er een beetje mee vertrouwd, maar soms zie ik het niet en is het echt iets stoms :-)

    Nog een klein vraagje; wat pas ik aan bij 'Visible' bij de verschillende tabbladen'xlSheetVisible', xlSheetHidden of xlSheedVeryHidden'.

    Groetjes,

    Was dit antwoord nuttig?

    0 opmerkingen Geen opmerkingen
  3. Anoniem
    2019-10-30T10:05:47+00:00

    Dag Lisa,

    Probeer deze code eens. Ik neem aan dat je voldoende ervaring met VBA hebt om de verschillen te zien/interpreteren. Mocht je evenwel nog vragen, shoot. (Best de code opkuisen indien het werkt.)

    Private Sub Workbook_Open()

        ShowSheet

    End Sub

    Sub ShowSheet()

       Dim ws As Worksheet

       Dim wsAllowed As Worksheet

       'If SuperUser, show all:

       If Application.Username = "Lisa Is" Or Application.Username = "Bart A" Then 'insert Super User's name here

          For Each ws In Worksheets

             ws.Visible = xlSheetVisible

          Next

          Exit Sub

       End If

       'If not a super user, only show the associated sheet

       Set wsAllowed = GetAllowedSheet(Application.Username)

       If Not wsAllowed Is Nothing Then

          wsAllowed.Visible = xlSheetVisible 'make sure the sheet is visible before hiding the others

       Else

          ''' wat moet gebeuren indien geen gekende user???

       End If

       'Hide all sheets that user isn't permitted to see.

       For Each ws In Worksheets

          If ws.Name <> wsAllowed.Name Then ws.Visible = xlSheetHidden

       Next

    End Sub

    Function GetAllowedSheet(Username) As Worksheet

        'Set the sheet each user is allowed to use here.

        'adapt the case statements for correct users and correct sheets to display

        Select Case Username

            Case "Ann L"

               Set GetAllowedSheet = Sheets("Ann")

            'Case Else

                'If code gets here then User Name is unhandled.

        'Select Case Application.UserName

            Case "Chris L"

               Set GetAllowedSheet = Sheets("Chris")

            Case Else

                'If code gets here then User Name is unhandled.

          'Select Case Application.UserName

    '        Case "Bart A"

    '           Set GetAllowedSheet = Sheets("Ann")

    '           Set GetAllowedSheet = Sheets("Chris")

    '           Set GetAllowedSheet = Sheets("Globaal")

    '           Set GetAllowedSheet = Sheets("Producten")

    '        Case Else

                'If code gets here then User Name is unhandled.

        End Select

    End Function

    Was dit antwoord nuttig?

    0 opmerkingen Geen opmerkingen
  4. Anoniem
    2019-10-29T15:44:56+00:00

    Dag JP Ronse,

    ik had deze gebruikt maar het lukt niet. ik denk dat er ergens een fout zit, maar ik zie het niet...

    Private Sub Workbook_Open()

        ShowSheet

    End Sub

    Sub ShowSheet()

        Dim ws As Worksheet

        Dim wsAllowed As Worksheet

        'If SuperUser, show all:

        If Application.UserName = "Lisa Is" Then 'insert Super User's name here

            For Each ws In Worksheets

               ws.Visible = xlSheetVisible

            Next

            Exit Sub

        End If

        'If not a super user, only show the associated sheet

        Set wsAllowed = GetAllowedSheet

        wsAllowed.Visible = xlSheetVisible 'make sure the sheet is visible before hiding the others

        'Hide all sheets that user isn't permitted to see.

        For Each ws In Worksheets

            If ws.Name <> wsAllowed.Name Then ws.Visible = xlSheetHidden

        Next

    End Sub

    Function GetAllowedSheet() As Worksheet

        'Set the sheet each user is allowed to use here.

        'adapt the case statements for correct users and correct sheets to display

        Select Case Application.UserName

            Case "Ann L"

               Set GetAllowedSheet = Sheets("Ann")

            Case Else

                'If code gets here then User Name is unhandled.

        Select Case Application.UserName

            Case "Chris L"

               Set GetAllowedSheet = Sheets("Chris")

            Case Else

                'If code gets here then User Name is unhandled.

          Select Case Application.UserName

            Case "Bart A"

               Set GetAllowedSheet = Sheets("Ann")

               Set GetAllowedSheet = Sheets("Chris")

               Set GetAllowedSheet = Sheets("Globaal")

               Set GetAllowedSheet = Sheets("Producten")

            Case Else

                'If code gets here then User Name is unhandled.

        End Select

    End Function

    Was dit antwoord nuttig?

    0 opmerkingen Geen opmerkingen
  5. Anoniem
    2019-10-29T15:05:33+00:00

    Dag LisaIs,

    Je kan het WORKBOOK_OPEN event gebruiken en daarin Application.Username om bladen zichtbaar/onzictbaar te maken?

    Was dit antwoord nuttig?

    0 opmerkingen Geen opmerkingen