Fermeture automatique d'un fichier excel
gregminko
-
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
j'aimerai savoir comment je peux mettre une date à laquelle mon fichier ne prourra plus être ouvert que par un mot de passe.
En effet, j'ai un fichier de gestion de stock sous excel, je souhaiterai par exemple que le 30 d'un mois donné, l'utilisateur ne puisse plus avoir accés à ce fichier qui lui demandera un mot de passe pour ouverture. Je serai le seul à avoir ce mot de passe que je pourrai changer à ma guise.
merci d'avance!
j'aimerai savoir comment je peux mettre une date à laquelle mon fichier ne prourra plus être ouvert que par un mot de passe.
En effet, j'ai un fichier de gestion de stock sous excel, je souhaiterai par exemple que le 30 d'un mois donné, l'utilisateur ne puisse plus avoir accés à ce fichier qui lui demandera un mot de passe pour ouverture. Je serai le seul à avoir ce mot de passe que je pourrai changer à ma guise.
merci d'avance!
2 réponses
-
Bonjour,
Quel est le rapport entre le titre du sujet (Fermeture automatique d'un fichier excel) et la question : j'aimerai savoir comment je peux mettre une date à laquelle mon fichier ne prourra plus être ouvert que par un mot de passe.
En gros que souhaitez vous faire :
1- que ce fichier, le 30 de chaque mois et uniquement le 30 ne soit consultable que grâce au mot de passe?
2- Qu'à compter du 30 novembre 2011 et ce jusqu'à la fin de son utilisation, ce fichier ne soit plus consultable que grâce au mot de passe?
-
bonjour , j'ai ça , si ça peut aider
Sub auto_open()
Call barrage
End Sub
-----------------------
Sub barrage()
'inserer la feuil2 , elle permet de ne pas voir le fichier , elle peut avoir d'autre nom
Sheets("Feuil2").Select
ma_date = Now
MyDay = Day(ma_date)
mon_jour = MyDay
'attention au mois de février , il faudra penser à marquer 28 ou 29
If mon_jour = 30 Then
réponse1 = InputBox("nous sommes le 30 du mois , vous ne pouvez plus accéder au fichier sans le code ! , veuillez le saisir svp !")
'votre code perso
If réponse1 = "essai22" Then
' la feuil1 est le fichier proprement dit , donc remplacer le nom de votre fichier
Sheets("Feuil1").Select
Exit Sub
Stop
Else
MsgBox "vous n'êtes pas habilité pour acceder au fichier"
Application.Quit
Exit Sub-
-
-
-
Donc en fait, il faut 2 choses :
I- à l'ouverture du classeur (Workbooks_Open) :
1- masquer toutes les feuilles "utiles" du classeur (avec la propriétés de WorkSheets visible = xlveryhidden pour que l'on ne puisse pas les afficher avec la commande Format//Afficher)
2- Vérifier la date
3- selon le test de 2- demander ou pas un mot de passe.
II- A la fermeture du classeur (WorkBooks_before_close) :
1- masquer toutes les feuilles "utiles" du classeur (avec la propriétés de WorkSheets visible = xlveryhidden pour que l'on ne puisse pas les afficher avec la commande Format//Afficher)
2- Enregistrer
Le problème étant qu'un enregistrement automatique est source de multiples coquilles......
ci-joint un classeur exemple
Avec ce code :Option Explicit Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim Wsh As Worksheet For Each Wsh In ThisWorkbook.Worksheets If Wsh.Name <> "Feuil2" Then Wsh.Visible = xlVeryHidden End If Next ActiveWorkbook.Save End Sub Private Sub Workbook_Open() Dim Wsh As Worksheet Dim Motdepass As String Dim Cpt As Byte For Each Wsh In ThisWorkbook.Worksheets If Wsh.Name <> "Feuil2" Then Wsh.Visible = xlVeryHidden End If Next 'test si date 'demande mot de passe For Cpt = 1 To 3 Motdepass = InputBox("Saisie : ", "Mot de passe") If Motdepass = "toto" Then Exit For Next If Motdepass = "toto" Then For Each Wsh In ThisWorkbook.Worksheets Wsh.Visible = True Next Else MsgBox "3 mauvais password, l'application va fermer" Application.Quit End If End Sub
-