Partager un fichier avec feuille personnelles

Bonjour

J'ai créer un fichier avec différente feuille de calcules et j'aimerai que chaque personnes puisse accéder seulement à sa propre feuilles et pas aux restes, et que leurs actions se répercute une une feuille "administrateur" où tous les actes de chacun se répercutes .

Salut,

Les utilisateurs se connectent-ils sous le même compte ou un compte différent ?

Si comptes différents alors il faut testé le nom du compte

Private Sub Workbook_Open()
    Dim strUser As String
    Dim ws As Worksheet
    strUser = Split(Environ(39), "=", , vbTextCompare)(1)
    Select Case strUser
        Case "Toto"
            HideSheets Worksheets("Feuil1")    ' // On cache les feuilles sauf Feuil1
        Case "Titi"
            HideSheets Worksheets("Feuil2")    ' // On cache les feuilles sauf Feuil2
        Case Else
            MsgBox "Vous n'êtes pas reconnu comme utilisateur de ce classeur." & vbCrLf _
                   & "Connectez-vous avec un compte utilisateur qui puisse être reconnu.", vbOKOnly Or vbInformation, Application.Name

            HideSheets Worksheets("NoUserDetected")    ' // On cache les feuilles sauf NoUserDetected qui peut être une feuille avec rien dessus ou bien avec un message de connexion.

    End Select
End Sub
Private Sub HideSheets(WorksheetName As Worksheet)
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        With ws
            If .Name = WorksheetName.Name Then
                ws.Visible = xlSheetVisible
            Else
                ws.Visible = xlSheetVeryHidden
            End If
        End With
    Next ws
End Sub

Si même compte mais utilisateurs différent alors à l'ouverture tu demandes de renseigner le nom de l'utilisateur:

Private Sub Workbook_Open()
    Dim strUser As String
    Dim ws As Worksheet
    strUser = Application.InputBox("Veuillez renseigner le nom d'utilisateur", "Renseignement compte")
    Select Case strUser
        Case "Toto"
            HideSheets Worksheets("Feuil1")    ' // On cache les feuilles sauf Feuil1
        Case "Titi"
            HideSheets Worksheets("Feuil2")    ' // On cache les feuilles sauf Feuil2
        Case Else
            MsgBox "Vous n'êtes pas reconnu comme utilisateur de ce classeur." & vbCrLf _
                   & "Connectez-vous avec un compte utilisateur qui puisse être reconnu.", vbOKOnly Or vbInformation, Application.Name

            HideSheets Worksheets("NoUserDetected")    ' // On cache les feuilles sauf NoUserDetected qui peut être une feuille avec rien dessus ou bien avec un message de connexion.

    End Select
End Sub

Private Sub HideSheets(WorksheetName As Worksheet)
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        With ws
            If .Name = WorksheetName.Name Then
                ws.Visible = xlSheetVisible
            Else
                ws.Visible = xlSheetVeryHidden
            End If
        End With
    Next ws
End Sub

Pour le reste c'est plus complexe, c'est faisable mais tu dois être familiarisé avec le VBA et l'environnement VBE

Rechercher des sujets similaires à "partager fichier feuille personnelles"