autorisations d'accès

  • Initiateur de la discussion Initiateur de la discussion dn35
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

dn35

XLDnaute Occasionnel
Bonjour à tous,

Sujet déjà exploité mais encore une fois c'est l'application à mon cas qui me pose un problème ... 😕😕😕
Le fichier joint nous sert à faire un "relevé opérationnel chaque matin". En fait nous faisons un résumé des opérations de maintenance devant être effectuées. Comme jusqu'ici nous avons du mal a en faire le suivi, il m'a été demandé de réaliser le petit fichier mis en pièce jointe. Mon soucis est que les deux services en ayant l'accès, il faut restreindre l'accès à certaines colonnes (pour la modification et la saisie) en fonction de l'utilisateur. J'espère que mon exemple sera plus parlant.

Merci d'avance pour votre aide et bonne journée à tous ceux qui seront de passage ...
Dn35

le fichier est ici
 
Re : autorisations d'accès

Bonjour boisgontier

Et merci ! (j'oublie toujours cette adresse mais ça y est cette fois elle est dans mes favoris !!!)Je viens de jeter un rapide coup d'oeil mais il doit effectivement y avoir ce que je cherche ...

Bonne journée à toi
 
Re : autorisations d'accès

Re bonjour à tous,

Je relance le sujet car après moultes tentatives, je me suis plûtot emmelée les pinceaux que fait quelqueschose de constructif 😕😕.. Toujours dans mon problème d'accès, j'ai essayé de créer des profils, de nommer des champs ... mais rien n'a fonctionné pour l'instant. Si vous aviez quelques instants pour jeter un coup d'oeil et me montrer où je me plante et me remettre dans le droit chemin ...😉

Merci d'avance à tous et bonne journée ...🙂

Le fichier se trouve ici
 
Re : autorisations d'accès

Re-

Je fais un petit up car je galère vraiment ... et je voudrais savoir s'il est possible également d'interdire le suppression de lignes dans mes tableaux.

Merci à tous et bon après midi.
 
Re : autorisations d'accès

Salut Dn35,

Dans ton USF1 tu peux remplacer ton code par celui-ci
Code:
Private Sub CommandButton1_Click()
  If ListUtilisateur = "" Then
    MsgBox "Veuillez vous identifier", vbInformation
  End If
  If ListUtilisateur.Value = "Production" Then
    If MDP.Value <> "prod" Then
      MsgBox "mauvais mot de passe", vbCritical
    Else
      With Sheets("Relevé")
        .Unprotect Password:="toto"
        ' Déprotéger la partie Production
        ProtectionProd (False)
        ' Protéger la partie Maintenance
        ProtectionMain (True)
        .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="toto"
      End With
    End If
  End If
  If ListUtilisateur.Value = "Maintenance" Then
    If MDP.Value <> "maint" Then
      MsgBox "mauvais mot de passe", vbCritical
    Else
      With Sheets("Relevé")
        .Unprotect Password:="toto"
        ' Protéger la partie Production
        ProtectionProd (True)
        ' Déprotéger la partie Maintenance
        ProtectionMain (False)
        .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="toto"
      End With
      With Feuil3
        Range("D1").Value = ListUtilisateur.Value
        Range("D2").Value = MDP.Value
      End With
    End If
  End If
  ' Fermet l'USF
  Unload Me
End Sub
Private Sub CommandButton3_Click()
  UserForm2.Show
End Sub
Private Sub UserForm_Initialize()
  With Feuil3
    ListUtilisateur.List = .Range("A1:A" & .Range("A65536").End(xlUp).Row).Value
  End With
End Sub
'Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) 'inactive la croix
'If CloseMode = 0 Then Cancel = True
'End Sub
' Enlève ou met la protection suivant l'activité
Sub ProtectionProd(Flg As Boolean)
  With Sheets("Relevé")
    .Range("B5:G" & Rows.Count).Locked = Flg
    .Range("K5:K" & Rows.Count).Locked = Flg
    .Range("N5:N" & Rows.Count).Locked = Flg
    .Range("R5:R" & Rows.Count).Locked = Flg
  End With
End Sub
Sub ProtectionMain(Flg As Boolean)
  With Sheets("Relevé")
    .Range("J5:J" & Rows.Count).Locked = Flg
    .Range("L5:M" & Rows.Count).Locked = Flg
    .Range("Q5:Q" & Rows.Count).Locked = Flg
  End With
End Sub

A voir, si cela te convient 😉

a+
 
Dernière modification par un modérateur:
Re : autorisations d'accès

RE- 😉

Nouveau problème : J'ai mis une VB critical pour avertir l'utilisateur de s'identifier mais losque l'on fait OK on arrive sur le tableau et celui ci n'est pas protégé. Idem lorsqu'il s'agit de l'utilisateur autre : je souhaite qu'il n'est pas le moyen d'utiliser la feuille pour modif

Mes questions sont donc les suivantes (pour simplifier): 😛

- Quelle est la ligne de code pour protéger complètement la feuille dans le cas où l'utilisateur est "autre" ?
- comment garder l'userform d'identification à l'écran( et ne pas passer outre) lorsque le message d'erreur demandant l'identification apparait à l'écran?

Merci d'avance !
DN35
 
autorisations d'accès + filtres automatiques

Re-
J'ai pu régler le problème de l'utilisateur "autre" en faisant appliquer les 2 protections (maintenance + production = true oui je sais c'était bête comme chou comme quoi en s'arrachant les cheveux un peu plus longtemps on peut toujours trouver une solution 😛)

Par contre j'ai un autre problème avec mes filtres automatiques qui ne peuvent pas fonctionner. J'ai essayé d'insérer la ligne de code suivante :

Code:
.EnableAutoFilter = True
comme ceci dans le code fourni par bruno (merci encore !😉) :

Code:
 If ListUtilisateur.Value = "Maintenance" Then
    If MDP.Value <> "arnaud" Then
      MsgBox "mauvais mot de passe", vbCritical
    Else
      With Sheets("Relevé")
        .Unprotect Password:="toto"
        ' Protéger la partie Production
        ProtectionProd (True)
        ' Déprotéger la partie Maintenance
        ProtectionMain (False)
 [COLOR="Red"]       .EnableAutoFilter = True[/COLOR]
        .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="toto"
      End With
    End If
  End If

Mais cela ne fonctionne pas ... ais-je le bon code ? Ou est-il mal placé ?

De même je suis encore coincée lors de l'identification, l'UF apparait bien, mais si le mot de passe n'est pas le bon, mon msgbox vb critical apparait bien mais si on fait OK, on a quand même l'accès prod ! il faudrait plutot retourner vers l'UF
Merci de vos réponses

Laure
 
Dernière édition:
Re : autorisations d'accès

Bonjour Dn,

Une petite astuce si, comme moi, tes utilisateurs se logguent le matin sur leur poste respectif :

Code:
Set netw = CreateObject("WScript.Network")
Nom_util = LCase(netw.UserName)

Me permet de récupérer le login Windows en minuscule et de le stocker dans "Nom_util" 🙄

Après tu peux verrouiller / dévérrouiller selon l'utilisateur ou même faire une "base" des différents profils pour y affecter plus ou moins d'autorisations sur les fonctions/macro/affichages...
 
Dernière édition:
Re : autorisations d'accès

Salut Ubot

Et merci pour l'astuce, elle pourra en effet m'être utile pour une deuxième application en cours de construction. Ici malheureusement, la connexion doit pouvoir se faire de n'importe quel ordi quelque soit l'utilisateur (on renseigne également l'avancement des travaux, résultat on se connecte au fichier depuis plusieurs ordi différents dans la journée)

Merci encore
Laure
 
Re : autorisations d'accès

RE-tous

Je me re-permet ce petit Up car je deviens chauve ... je suis vraiment coincée par ces deux problèmes à savoir
- Ma protection marche nickel en fonction de l'utilisateur mais le filtre automatique n'est plus exploitable. J'ai beau mettre ma ligne de code (voir ci dessus) un peu partout, cela ne fonctionne jamais.
- Lors de l'identification, si le mot de passe n'est pas le bon, mon message d'erreur apparait bien mais lorsqu'on clique sur Ok l'accès de fait quand même avec le profil utilisateur indiqué dans le list box de l'UF ... alors que l'accès ne devrait soit pas se faire (UF reste apparent) ou alors se faire mais sans autorisations de modification (protection maintenance et protection production = true).

Si vous aviez une idée, ci joint le fichier. Le mot de passe pour production est "encad" et "toto" pour déprotéger toute la feuille.

Merci et bonne soirée à tous
Laure
 
Dernière édition:
Re : autorisations d'accès

Re Laure.
Il faut rajouter une petite ligne de code en cas de mauvais mot de passe.
Un petit userform1.show pour réafficher le userform.
Sinon un petit Exit pour sortir de l'application.
Il faut aussi vérrouiller le projet VB pour éviter que qqn (comme moi) aille voir les autres mots de passe type "arnaud" dans ton code pour savoir quel mdp entrer.

Pour le filtre auto, je n'ai pas regardé...

Cordialement
 
Re : autorisations d'accès

Bonjour à tous,

Dn35, pour la protection, il faut autoriser le filtrage automatique
Code:
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFormattingCells:=True, AllowFormattingColumns:=True, _
        AllowFormattingRows:=True, [COLOR=blue][B]AllowFiltering:=True
[/B][/COLOR]

Comme l'a dit Ubot303, il faut ajouter des Exit sub
Réponse 2:
Code:
Private Sub CommandButton1_Click()
  If ListUtilisateur = "" Then
    MsgBox "Veuillez vous identifier", vbInformation
    [COLOR=blue][B]Exit Sub
[/B][/COLOR]  End If
  If ListUtilisateur.Value = "Production" Then
    If MDP.Value <> "encad" Then
     MsgBox "mauvais mot de passe", vbCritical, "ATTENTION"
     [B][COLOR=blue]Exit Sub
[/COLOR][/B]    Else
Etc ...

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour