Bonjour à tous,
j'ai un classeur Excel planning d'une équipe avec macro mdp utilisateur afin qu'ils n'accèdent qu'a leur propre service
mon problème c'est que si il n'active pas les macros, il peuvent arrivé à voir tout le classeur.
ils peuvent utiliser n'importe quel pc de la boite, et le classeur se trouve dans un serveur
userform ils rentre leur nom + MDP et accès à leur service (une feuil = 1 service)
le classeur comporte 7 feuils dont la feuil01 ou s'affiche l'userform
je souhaiterais que le classeur soit bloquer de toute lecture si ils n'activent pas les macros? ou si il y a à une autre solution?
ThisWorkbook :
Private Sub Workbook_open()
Dim Ws As Worksheet
For Each Ws In ThisWorkbook.Worksheets
If Ws.Name <> "Feuil1" Then Ws.Visible = xlSheetVeryHidden
Next Ws
Load UserForm1
UserForm1.show
End Sub
merci
cordialement.
PS: j'ai trouvé cela sur le net mais ne sait pas l'adapté à mon bva
une solution possible serait de créer une feuille affichant le message "Vous devez activer les macros".
Puis :
> à la fermeture du classeur, tu caches toutes les feuilles sauf celle-là
Code (Text):
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Sheets("FeuilleActivationDesMacros").Visible = xlSheetVisible
Dim curSheet As Worksheet
For Each curSheet In ThisWorkbook.Sheets
If curSheet.Name <> "FeuilleActivationDesMacros" Then curSheet.Visible = xlSheetVeryHidden
Next curSheet
ThisWorkbook.Save
End Sub
> à l'ouverture, tu cache cette feuille et affiche les autres
Code (Text):
Private Sub Workbook_Open()
Dim curSheet As Worksheet
For Each curSheet In ThisWorkbook.Sheets
If curSheet.Name <> "FeuilleActivationDesMacros" Then curSheet.Visible = xlSheetVisible
Next curSheet
ThisWorkbook.Sheets("FeuilleActivationDesMacros").Visible = xlSheetVeryHidden
End Sub
si les macros ne sont pas activées, la seule feuille affichée du classeur sera celle contenant le message "Vous devez activer les macros".
j'ai un classeur Excel planning d'une équipe avec macro mdp utilisateur afin qu'ils n'accèdent qu'a leur propre service
mon problème c'est que si il n'active pas les macros, il peuvent arrivé à voir tout le classeur.
ils peuvent utiliser n'importe quel pc de la boite, et le classeur se trouve dans un serveur
userform ils rentre leur nom + MDP et accès à leur service (une feuil = 1 service)
le classeur comporte 7 feuils dont la feuil01 ou s'affiche l'userform
je souhaiterais que le classeur soit bloquer de toute lecture si ils n'activent pas les macros? ou si il y a à une autre solution?
ThisWorkbook :
Private Sub Workbook_open()
Dim Ws As Worksheet
For Each Ws In ThisWorkbook.Worksheets
If Ws.Name <> "Feuil1" Then Ws.Visible = xlSheetVeryHidden
Next Ws
Load UserForm1
UserForm1.show
End Sub
merci
cordialement.
PS: j'ai trouvé cela sur le net mais ne sait pas l'adapté à mon bva
une solution possible serait de créer une feuille affichant le message "Vous devez activer les macros".
Puis :
> à la fermeture du classeur, tu caches toutes les feuilles sauf celle-là
Code (Text):
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Sheets("FeuilleActivationDesMacros").Visible = xlSheetVisible
Dim curSheet As Worksheet
For Each curSheet In ThisWorkbook.Sheets
If curSheet.Name <> "FeuilleActivationDesMacros" Then curSheet.Visible = xlSheetVeryHidden
Next curSheet
ThisWorkbook.Save
End Sub
> à l'ouverture, tu cache cette feuille et affiche les autres
Code (Text):
Private Sub Workbook_Open()
Dim curSheet As Worksheet
For Each curSheet In ThisWorkbook.Sheets
If curSheet.Name <> "FeuilleActivationDesMacros" Then curSheet.Visible = xlSheetVisible
Next curSheet
ThisWorkbook.Sheets("FeuilleActivationDesMacros").Visible = xlSheetVeryHidden
End Sub
si les macros ne sont pas activées, la seule feuille affichée du classeur sera celle contenant le message "Vous devez activer les macros".
Dernière édition: