protection classeur et onglet par mot de passe

free

XLDnaute Nouveau
bonjour à tous,

je viens de m'inscrire et nom specialiste en VBA, je suis responsable maintenance, je viens de créer un fichier contenant plusieurs onglet:
-onglet menu que je veux inserer un bouton pour ouvrire des feuilles suivants masquer au départ,
-onglet tableau de bord (droit d'utilisateur M.OLOKO),
-onglet activités (droit d'utilisateur M. OLOKO et BOUASSA),
-onglet efficacité (droit d'utilisateur M. OLOKO et BOUASSA),
-onglet couts (droit d'utilisateur M. OLOKO et BOUASSA),
donc à l'ouverture du classeur un icone demande le nom de l'utilisateur et son mot de passe suivant les droits attribués.
merci de votre concours
 

Gen Rose

XLDnaute Impliqué
Supporter XLD
Re : protection classeur et onglet par mot de passe

Bonjour free,

Il est très important de poster un fichier (sans données confidentielles) afin d'obtenir une réponse.

Dans votre cas, j'ai 2 macro assez simple:

Code:
Sub Affiche()
    Application.ScreenUpdating = False
      Feuil2.Visible = True
      Feuil3.Visible = True
      Feuil4.Visible = True
    Feuil1.Select
End Sub

Code:
Sub Cache()
    Application.ScreenUpdating = False
      Feuil2.Visible = xlVeryHidden
      Feuil3.Visible = xlVeryHidden
      Feuil4.Visible = xlVeryHidden
    Feuil1.Select
End Sub

Que l'on associe à des boutons.

@ plus
 

JAcQUOT

XLDnaute Nouveau
Re : protection classeur et onglet par mot de passe

Bonjour à tous,

Une macro d'un mot de passe 1234 ( attention cette solution n'est pas tout à fait fiable puisque l'on peut accéder à la macro lors de l'ouverture du classeur avec une manipulation )

Code:
Option Explicit

Sub Auto_Open()
Dim i As Integer
Dim X As Integer
Dim mot_de_passe As Integer
For i = 1 To 3
X = 3
mot_de_passe = InputBox("Veuillez indiquer le mot de passe!", "MOT DE PASSE")
 If mot_de_passe = 1234 Then
  MsgBox "OK"
  Exit Sub
  Else
  MsgBox " Il vous reste " & " " & i - X & " " & "tentative(s)", vbOKOnly + vbInformation, "ATTENTION"
  End If
Next i
End Sub

Bonne journée
 

free

XLDnaute Nouveau
Re : protection classeur et onglet par mot de passe

Bonjour free,

Il est très important de poster un fichier (sans données confidentielles) afin d'obtenir une réponse.

Dans votre cas, j'ai 2 macro assez simple:

Code:
Sub Affiche()
    Application.ScreenUpdating = False
      Feuil2.Visible = True
      Feuil3.Visible = True
      Feuil4.Visible = True
    Feuil1.Select
End Sub

Code:
Sub Cache()
    Application.ScreenUpdating = False
      Feuil2.Visible = xlVeryHidden
      Feuil3.Visible = xlVeryHidden
      Feuil4.Visible = xlVeryHidden
    Feuil1.Select
End Sub

Que l'on associe à des boutons.

@ plus

bjr,

je viens de mettre le fichier joint, sur le feuille usernames il y a des nom d'utilisateur affectés sur des feuilles autorisé, ceux ci d's l'ouverture du classeur une fenetre apparait pour demander un mot de passe et après ouverture des feuille suivant affectation du mot de passe.
en passant je ne suit pas pro VBA, merci de donner une procedure d'insertion des codes VBA dans le classeur
 

Pièces jointes

  • Exemple 222.xlsx
    13.5 KB · Affichages: 49

Gen Rose

XLDnaute Impliqué
Supporter XLD
Re : protection classeur et onglet par mot de passe

Re,

Je ne suis pas pro des macros, bien au contraire, mais j'ai tout même monté un doc foncionnel.

En page menu, 2 boutons "Accès 1" et "Accès 2"; le premier a pour mot de passe rfo et le deuxième gab, tel qu demandé.
Bien sûr, un vrai programmeur vba pourrait faire un seul bouton avec plusieurs mots de passe; comme je n'y arrive pas, il y en a 2.

J'ai ajouté un bouton rouge temporaire nommé "fermer" mais à la fermeture du document, toutes les pages se masquent automatiquement (sauf le menu). Il ne sert qu'à tester les macros.

Il faut aller dans le développeur pour modifier les macro; êtes-vous capable d'ouvrir l'éditeur et de voir les macros?

Si oui, il est très facile de modifier les mots de passe et modifier les noms de feuilles.

@ vous relire,

Code:
ub Acces_1()
    mp = InputBox("Mot de passe?")
    If mp = "rfo" Then
        Sheets("Tableau de bord").Visible = True
        Sheets("Activités").Visible = True
        Sheets("Efficacité").Visible = True
        Sheets("Couts").Visible = True
    End If
End Sub
Sub Acces_2()
    mp = InputBox("Mot de passe?")
    If mp = "gab" Then
        Sheets("Activités").Visible = True
        Sheets("Efficacité").Visible = True
        Sheets("Couts").Visible = True
    End If
End Sub
Sub auto_close()
    Sheets("Tableau de bord").Visible = xlVeryHidden
    Sheets("Activités").Visible = xlVeryHidden
    Sheets("Efficacité").Visible = xlVeryHidden
    Sheets("Couts").Visible = xlVeryHidden
    Sheets("Usernames").Visible = xlVeryHidden
End Sub

Attention; toute modification de nom de feuille (onglet) doit aussi être faite dans la macro.
 

Pièces jointes

  • TEST_20222.xlsm
    30.4 KB · Affichages: 96

Discussions similaires

Réponses
5
Affichages
459
Compte Supprimé 979
C