comment limiter laccs a certaines feuille dun classeur

D

djessica

Guest
Bonsoir à tous jespre que vous allez bien et que mr arnaud aussi;-)
en fait jaimerais limiter laccés a certaines pages du classeur un simple utilisateur comment faire et merci à tous pour votre AIDE§§

a bientot!!
 
B

Bernard

Guest
Bonsoir Djessica

Un système assez vicieux pour le simple utilisateur. Système qui fonctionne avec un pseudo mot de passe, verrouillage qui a l’avantage de ne pas pouvoir être cassé avec un programme tel Acyd de TI par exemple, du moins dans un premier temps.

1- Dans l'interface utilisateur, deux commandes, l'une, un bouton simple, ouvre le formulaire de saisie de données, normal jusque là, l'autre, une image par exemple, permet l’affichage de la barre des onglets et l’affichage des seules feuilles souhaitées. Comment ?

La macro de l’image :
Sub MasquerDemasquerfeuilles()
Dim MyValue As String
Application.ScreenUpdating = False
' Message pour la saisie du numéro de passe
MyValue = InputBox("Entrez le mot de passe, merci !", "ENTREE RESERVEE")
If Sheets("Données").[J1].Value = MyValue Then
ActiveWindow.DisplayWorkbookTabs = True
Sheets("Tableau").Visible = True
Sheets("Données").Visible = True
Sheets("Données").[J1].ClearContents
Else
If Sheets("Données").Visible = False Then Exit Sub
Sheets("Données").[J1].Value = MyValue
Sheets("Tableau").Visible = False
Sheets("Données").Visible = False
ActiveWindow.DisplayWorkbookTabs = False
End If
Application.ScreenUpdating = True
End Sub

Explications : deux conditions imbriquées à trois possibilités : si première vrai, alors « A », sinon si première est fausse et la seconde vrai alors « B », sinon si première est fausse et la seconde fausse alors « C ».

a- La valeur inscrite, valeur définie dans le message en tant que mot de passe, correspond au contenu de la cellule « J1 » ; première condition vraie, le contenu de la cellule « J1 » est effacé, la barre d’onglets apparaît, et les feuilles, « Tableau » et « Données », sont affichées. (Accès autorisé).
b- La valeur donnée, valeur définie dans le message en tant que mot de passe, ne correspond pas au contenu de la cellule « J1 » ; première condition fausse, la seconde qui demande si la feuille « Données » est masquée est vraie et donc sortie de la procédure. (Accès refusé).
c- La valeur donnée ne correspond pas au contenu de la cellule « J1 », celle-ci est vide ; première condition fausse, la seconde qui demande si la feuille « Données » est masquée est fausse, elle est affichée, la valeur est inscrite dans la cellule « J1 », la barre d’onglets disparaît, et les feuilles, « Tableau » et « Données », sont masquées. (Etat de protection).

2- Afin que l’utilisateur averti des possibilités par les menus d’Excel : Outils/Options/Affichage/Onglets de classeur case à cocher puis, afin que Format/feuille/afficher ne fonctionne pas, dans chaque module de feuille, « Tableau » et « Données », mettre en place les macros suivantes :

Private Sub Worksheet_Activate()
If Sheets("Données").[J1].Value = "" Then Exit Sub
Sheets("Données").Visible = False
End Sub

Private Sub Worksheet_Activate()
If Sheets("Données").[J1].Value = "" Then: Exit Sub
Sheets("TABLEAU").Visible = False
End Sub

L’utilisateur ne pourra voir que l’onglet de la page interface. Chaque fois qu’il essaiera d’afficher l’une des deux autres feuilles, elle se masquera aussitôt. Une ligne sécurité empêche que cela soit possible après ouverture et effacement de la cellule « J1 ».

3- Il suffira enfin de verrouiller le VBAProjet dans Visual Basic Editor. Faire Outils/Propriétés de VBAProject/Protection et un mot de passe plus confirmation.

4- Inconvénient du système, les chiffres sont en clair dans l'inputbox pendant la saisie.

Cordialement

Bernard
 

Discussions similaires

Réponses
3
Affichages
251
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 755
Messages
2 091 710
Membres
105 054
dernier inscrit
uzaoui