Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Protection classeur

  • Initiateur de la discussion Initiateur de la discussion SPEA
  • 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 !

SPEA

XLDnaute Occasionnel
Bonne journée à tous

je cherche un bout de code VBA pour differencier les droits d'acces sur un classeur pour 2 utilisateurs.

J'ai un subordonné qui effectue des relèves et saisit les données dans des feuilles (1 par mois). Je souhaiterais lui autoriser uniquement la saisie sur ces feuilles, dans des colonnes bien précises et lui empecher les modifications de la structure du classeur.

L'ideal serait une boite de dialogue s'ouvrant à l'ouverture du classeur demandant un mot de passe. Suivant le mot de passe saisi, l'utilisateur se voit authorisé la saisie sur des colonnes determinées ou je me vois authorisé le controle total.

Ceci dans le but de conserver pour moi le droit de modifier et faire evoluer le fichier et eviter à mon collaborateur de faire des dommages à la structure du fichier dont j'ai mis beaucoup de temps à mettre en place les formules.

Merci
 
Re : Protection classeur

Bonjour Spea

peut être une solution ci dessous, code à placer dans ThisWorkBook :

Code:
Private Sub Workbook_Open()
If Application.UserName = "Nom_Utilisateur_Autorisé" Then
    Sheets("nom_de_ta_feuille").Unprotect Password:="1234"
End If
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Sheets("nom_de_ta_feuille").Protect Password:="1234"
End Sub

bonne journée
@+
 
Re : Protection classeur

Bonjour Pierrot et merci pour ta reponse.

si je comprend bien le code, la macro enlève la protection de la feuille si
l'utilisateur entre le bon mot de passe et remet la protection à la fermeture du fichier.

Je cherche un code qui autorise mon collaborateur à modifier seulement quelques colonnes apres s'etre identifié en entrant ses initiales comme mot de passe.

En parallèle je dois pouvoir ouvrir le classeur en entrant mes initiales et avoir tous les droits pour modifier le classeur.
 
Re : Protection classeur

Re

non, cette macro déprotège une feuille à l'ouverture pour un utilisateur x, et reprotège avent sauvegarde. Donc si tu protèges ta feuille en déverrouillant les cellules accessibles pour les autres utilisateurs, tu devrais arriver au résultat escompté, enfin si j'ai bien compris...

@+
 
Re : Protection classeur

Bonjour Spea

avec cette methode, l'utilisateur est automatiquement détecté par le nom déclaré dans => barre de menu => outils => option => onglet général => nom utilisateur, c'est cette ligne de code qui fait le distingo, ca évite un USF :

Code:
If Application.UserName = "Nom_Utilisateur_Autorisé" Then

@+
 
Re : Protection classeur

Bonjour Pierrot, merci pour ces precisions

Peux on ameliorer le code pour 2 utilisateurs differents, chacun ayant sont mot de passe.

- Utilisateur 1 autorisé à saisir seulement dans quelques colonnes, le reste du classeur verouillé (structure impossible à modifier)

- Utilisateur 2 accède au classeur non protégé, possibilité de modifier la structure des feuilles.

Pour l'utilisateur 1, une piste consiste peut être à proteger les feuilles et se servir de la propriété enableselection pour permettre de selectionner les cellules dont la propriété Locked est false (worksheets("nomdelafeuille").enableselection=xlunlockedcells...

qu'en penses tu ?
 
Re : Protection classeur

Re

-Pierrot93
Sauf erreur de ma part
Application.UserName

recupère le nom enregistré à l'installation d'Excel non?
cad le nom du propriétaire du pc


Je crois que SPEA veut identifier le nom d' utilisateur de la session en cours

Voila une macro qui le fait
Code:
' By Chris Rae, 14/6/99, 3/9/00.
Option Explicit
' This is used by GetUserName() to find the current user's
' name from the API
Declare Function Get_User_Name Lib "advapi32.dll" Alias _
                 "GetUserNameA" (ByVal lpBuffer As String, _
                 nSize As Long) As Long
Function GetUserName() As String
    Dim lpBuff As String * 25
 
    Get_User_Name lpBuff, 25
    GetUserName = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1)
End Function

Après relecture j'ai un doute
SPEA veut peut-etre créer une liste d'utilisateurs dans une feuille cachée
avec des droits différents avec identification dans USF à l'ouverture

Si c'est le cas un exemple ici
Lien supprimé
 
Dernière édition:
Re : Protection classeur

Affirmatif c'est ce que je veux pour ce fichier car dans la 1° macro, n'importe qui ouvrant le fichier depuis le PC de l'utilisateur 1 a accés au classeur.

Si utilisateur 1 se log au fichier via USF avec son nom utilisateur et mdp, il a accés à la saisie sur des colonnes non protegées.

Si utilisateur 2 se log au fichier avec son nom utilisateur et mdp il a accés à toute la structure du fichier.
 
Re : Protection classeur

OK j'ai trouvé comment limiter l'accés à mon collaborateur, sur chaque feuille je dévérouille les colonnes auxquelles il doit avoir accés, ensuite dans worksheet change:

Sheets("Feuil1").EnableSelection = xlUnlockedCells
Sheets("Feuil1").Protect Contents:=True, UserInterfaceOnly:=True

Par contre je ne sais pas comment faire pour creer un USF dans lequel on tape un code ou des initiales, suivant le code saisi dans l'USF les feuilles sont protégées avec la methode au dessus ou la protection est otée.
 
Re : Protection classeur

Bonjour à tous,

En complément de la question initiale de SPEA, voiçi une option que j'avais retenue sur un projet :

1. toutes les pages (à l'exception de la page d'accueil) sont cachées
2. sur la page d'accueil, un bouton qui déclenche l'apparition d'un USF avec demande d'un mot de passe (3 mots de passe pour 3 niveaux d'accès)
3. selon le mot de passe saisi, les feuilles "utiles" deviennent visibles
4. à la sortie du classeur, toutes les pages (à l'exception de la page d'accueil) sont de nouveau cachées

A mon sens l'USF est une solution simple. Faute de temps, je ne peux entrer dans les détails, mais avec Pierrot et Staple aux commandes, ca va rouler tout tout seul ! 😉

Bonne journée à tous
Kotov
 
- 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

Discussions similaires

Y
Réponses
2
Affichages
1 K
ynx69
Y
S
Réponses
9
Affichages
4 K
Sylvie_076
S
W
Réponses
1
Affichages
1 K
wolfloner
W
T
Réponses
8
Affichages
2 K
totaljim
T
K
Réponses
3
Affichages
1 K
Kersijus
K
Z
Réponses
25
Affichages
7 K
ziz59
Z
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…