Rapport de message :*
 

Données des droits selon utilisateur

Titre du sujet : Données des droits selon utilisateur
par ploz le 30/01/2016 22:44:52

bonsoir à tous,

 

je debute en vba doncc'est pourquoi je me tourne vers vous

en faite, j'ai un classeur avec une feuille qui s appellent "admin" avec mon nom d'utilisateur dans la colonne Un mot de passe dans la colonne B et le nom de mes feuilles C, D, E, F, I inséré un X majuscule sur la ligne correspondant à l'utilisateur colonne de la page à laquelle je lui souhaite un accès, si aucun X et cacher cette page
ceci est sa devient compliqué en fait, je souhaite que je pourrais restreindre l'accès pour certains en lecture seule utilisateur, et pour les autres le pouvoir de la modification totale.
on ma dit d'ajouter un mot de passe à la feuille, mais je voudrais que ce soit automatiser pour l'utilisateur "Admin" à se connecter à mon userform il Otez le protéger car il aura un accès total au classeur de lecture + modification.
si l'utilisateur "Bernard" a normalement accès à la feuille 1 il peut lire mais pas effectué de changement

 

donc j'ai trouver ce lien sur votre forum

http://www.mdf-xlpages.com/modules/ne ... iewtopic.php?post_id=2268

je voudrais pouvoir l'integrer a mon code

 

    Private Sub UserForm_Initialize()
      Me.Utilisateur.List = Sheets("admin").Range("Utilisateur").Value
      Me.Utilisateur.ListIndex = 0
    End Sub
    Private Sub MotPasse_Change()
      p = Application.Match(Me.Utilisateur, Range("Utilisateur"), 0)
      mdp = Application.Index(Range("MotPasse"), p)
      If Not IsError(mdp) Then
        If Me.motpasse = CStr(mdp) Then ok = True
      End If
    End Sub
    Private Sub B_ok_Click()
      If Me.motpasse <> "" And Me.Utilisateur <> "" Then
         NbEssai = NbEssai + 1: Me.Label3.Caption = NbEssai & " essai(s)"
         For i = 1 To Range("MotPasse").Count
           If UCase(Me.motpasse) = UCase(Range("motpasse")(i)) And _
             UCase(Me.Utilisateur) = UCase(Range("utilisateur")(i)) Then
             For j = 1 To [feuille].Count
               If Range("droits").Cells(i, j) = "X" Then
                  temp = Range("feuille")(j)
                  Sheets(temp).Visible = True
               End If
             Next j
             Sheets("Espion").[M2] = Me.Utilisateur
             Unload Me: Exit Sub
           End If
          Next i
       End If
       If NbEssai > 3 Then
          MsgBox NbEssai & " essais!"
          ThisWorkbook.Close False
       End If
    End Sub

meme si je doit rajouter un X par exemple pour les utilisateur qui pourrait faire la modification cela n'est pas génant
Je espère avoir été clair dans ma description
Merci d'avance pour votre aide
si vous aviez des questions ne hésitez Je suis derrière le pc