Code VBA un peu spécial

bonjour à tous,

je suis à la recherche d'un code un peu spécial =)

enfaite dans mon classeur j'ai une feuille qui ce nomme admin

ou il y a mes nom d'utilisateur et mdp

exemple ici http://boisgontierjacques.free.fr/fichiers/Protection/ProtectionOngletMultiFeuillesUtilMP3.xls

donc enfaite parmis cela je voudrais rajouter une colonne Ecriture,

si l'utilisateur n'a pas de X dans sa ligne colonne ecriture il a access que par lecture seul par contre si présent il a lecture + ecriture =)

merci de votre aide

Désolé, Ploz, mais je ne comprends pas ce que tu veux!

Pourrais-tu être plus clair ?

bonsoir,

enfaite j'ai un classeur avec un userform qui s'ouvre a l'ouverture qui me sert d'interface de connection

ensuite j'ai plusieurs feuille plusieurs feuille par exemple feuil 1 feuil 2 ect ... et j'ai une feuille supplementaire qui se nomme Admin

en colonne A j'ai mes nom d'utilisateur en B les mot de passe et en C,D,E ..... les nom de mes feuilles

exemple

Feuil1 feuil2 feuil3

user1 x que la feuille 1

user2 x que la feuille 2

user3 x que la feuille 3

user4 x x x a assez actuellement au toutes les feuilles

donc c'est ça ce que j'ai actuellement:

je voudrais ajouté une fonction supplémentaire pou certaine personne du genre user4 peut lire et ecrire sur toute les feuilles et les autre il ont que la lecture.

j’espère que tu comprendra

merci

D'accord Ploz,

ça j'avais compris et ce sont les mêmes explications que ton post précédent!

Je ne comprends pas,[b] si c'est une simple colonne à rajouter [/b]ce qui a de compliqué... sauf à un faire un usage automatisé pour ces usagers-là (autoriser ou interdire l'écriture)... ce que mes compétences ne me permettront pas de résoudre!

Un fichier, peut-être?

A+

merci de ta réponse

enfaite oui cette colonne qui ce s’appellera devra être automatiser pour accepter ou non l'ecriture

Bonjour ,

pourquoi tout simplement les onglets en lecture seul mettre une protection cellule?

merci de vos reponse

enfaite dans le classeur excel

j'ai plusieurs utilisateur qui s'authentifie via un userform

au debut j'avais penser a mettre une protection a la feuille sauf que sa fait encore un autre mdp a retenir donc dans ce cas mon userform n'aurait plus l'interet d'exister

Julien,

ton lien et niquel sauf que maintenant il faut que j'arrive à l'adapter avec celui ci

http://boisgontierjacques.free.fr/fichiers/Protection/ProtectionOngletMultiFeuillesUtilMP3.xls

enfaite j'ai la feuille admin avec mes nom d'utilisateur comme dit plus haut si il y a un X en face de l'utilisateur il a access a la feuille sinon non

et donc par exemple je voudrais pour avoir une colonne ecrit par exemple Modification si X mis alors il peut modifier n'importe quel feuille si rien mis il a que la lecture seul

capture

voici 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

merci de votre aide

En faite il faudrait que les "x" sont remplace par des "0". Toutes feuilles contenant 0 en face utilisateur l onglet est en mode protection si il y a x onglet est deprotege.

oui sa serais bien aussi =)

quelqu’un pour m’aidè a adapté le code ? svp

étant novice je vais galérer :s

merci a vous

Merci à Banzai64 pour son aide =)

Un fichier pour avoir reponse

Bonjour,

dans un module,

Option Explicit
'sert à proteger les feuilles si l'utilisateur est en lecture seul
Public Modification As Boolean
Public Const MOTDEPASSE As String = "TOTO"

et dans l'userform

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
        If Sheets("Admin").Range("Q" & i + 1) = "X" Then
          Modification = True
        End If
        For j = 1 To [feuille].Count
          If Range("droits").Cells(i, j) = "X" Then
            temp = Range("feuille")(j)
            Sheets(temp).Visible = True
            If Modification = True Then
              Sheets(temp).Unprotect Password:=MOTDEPASSE
            Else
              Sheets(temp).Protect Password:=MOTDEPASSE, UserInterfaceOnly:=True
            End If
          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

voilà

Au vu du code il y aura 2 mdp?

il y a le mot de passe de l'interface pour cacher ou pas les feuilles suivant l'utilisateur et ensuite toutes les feuilles sont proteger sauf pour les utilisateurs qui on un X dans une colonne spécifique

Rechercher des sujets similaires à "code vba peu special"