Bonjour à tous et aux autres,
Je souhaiterais mettre à disposition un fichier disponible à plusieurs services. Néanmoins, il faut que chaque service n'ait accès qu'à certains onglets. J'ai donc procédé en créant une macro qui gère l'affichage des onglets en fonction du mot de passe saisi lors de l'ouverture. Ci-dessous le code réalisé*:
Je vous transmet également une maquette du fichier. Pouvez-vous me dire si le code réalisé est correct ou s'il faut quelque chose de différent*? Peut-on modifier la structure de celui-ci de telle sorte que le fichier ne s'ouvre pas du tout si un code erroné est entré (ceci afin de supprimer le premier onglet qui est vide et ne sert à rien)*? Par avance merci pour vos réponses.
Cordialement.
K<L<M
Je souhaiterais mettre à disposition un fichier disponible à plusieurs services. Néanmoins, il faut que chaque service n'ait accès qu'à certains onglets. J'ai donc procédé en créant une macro qui gère l'affichage des onglets en fonction du mot de passe saisi lors de l'ouverture. Ci-dessous le code réalisé*:
Code:
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim i As Byte
If ThisWorkbook.Saved Then
ActiveWorkbook.Unprotect
For i = 2 To 4
Sheets(i).Visible = False
Next i
ActiveWorkbook.Protect Structure:=True
ThisWorkbook.Save
Else
ActiveWorkbook.Unprotect
For i = 2 To 4
Sheets(i).Visible = False
Next i
ActiveWorkbook.Protect Structure:=True
End If
End Sub
Private Sub Workbook_Open()
Dim MotDePasse As String
Dim i As Byte
MotDePasse = InputBox("Veuillez saisir le mot de passe de votre service", "Saisie")
ActiveWorkbook.Unprotect
Select Case MotDePasse
Case "service1"
Sheets(2).Visible = True
Case "service2"
Sheets(3).Visible = True
Case "service3"
Sheets(4).Visible = True
Case "admin"
For i = 2 To 4
Sheets(i).Visible = True
Next i
Case Else
MsgBox "Aucun mot de passe reconnu. Veuillez rouvrir le classeur."
End Select
ActiveWorkbook.Protect Structure:=True
End Sub
Je vous transmet également une maquette du fichier. Pouvez-vous me dire si le code réalisé est correct ou s'il faut quelque chose de différent*? Peut-on modifier la structure de celui-ci de telle sorte que le fichier ne s'ouvre pas du tout si un code erroné est entré (ceci afin de supprimer le premier onglet qui est vide et ne sert à rien)*? Par avance merci pour vos réponses.
Cordialement.
K<L<M