Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Voici un exemple de ce que tu peux faire (le code est a placer dans le module ThisWorkbook) :
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim rep2 As Byte
Dim rep As String
retour:
rep = InputBox("Veuillez saisir le mot de passe pour sauvegarder. ", "")
If rep = "[COLOR=red]motdepasse[/COLOR]" Then
[COLOR=blue]ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\Moi\Bureau\Classeur1.xls"[/COLOR]
Else
rep2 = MsgBox("Le mot de passe est incorrect, voulez-vous le resaisir ?", vbYesNo + vbExclamation, "")
If rep2 = vbYes Then GoTo retour:
End If
End Sub
Le code en bleu est a adapter au chemin que tu souhaites si tu veux que celui-ci soit fixe ainsi que le nom du classeur... Le mot de passe est en rouge.
Bonjour gpasdechance, salut porcinet (edit, désolé, je t'avais pas vu)
Euh ... oui, c'est possible, même si là, j'en vois pas trop l'intérêt.
Ceci dit, si tu veux un code, ça sera ça:
Etape 1: tu vas dans le vba éditor, tu sélectionnes "This_workbook" (liste à gauche dans Microsoft Excel Object).
Etape 2: tu sélectionnes workbook dans la liste déroulante de gauche, puis beforeClose dans la liste déroulante à droite.
Etape 3 le code:
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Password As String
Password = InputBox("Entrez le mot de passe de sauvegarde")
If Password <> "testPass" Then
MsgBox ("Password incorrect")
ActiveWorkbook.Close savechanges:=False
ElseIf Password = testPass Then
ActiveWorkbook.Save
ActiveWorkbook.Close
End If
End Sub
J'ai pas répondu à tout, ce petit code permet:
- de demander un mot de passe avant de fermer
- si le mot de passe est faux ou clic sur annuler, retour sur demande du mot de passe
- si le mot de passe est bon, enregistrement, puis fermeture.
J'y mets quand même un bémol: si tu as un utilisateur aussi chiant que moi ( 😀 ), sache qu'il peut toujours cliquer sur le bouton enregistrer de la barre de travail, ou faire fichier, Enregistrer.
Tu peux contourner ce problème en faisant beforeSave au lieu de beforeClose, mais je préfère ne pas m'avancer.
il n`y a pas un moyen pour que le systeme fichier / enregistrer ne soit pas possible?
je cherche vraiment un moyen pour que la personne n`ai pas le choix et pas de solution autre que cliquer sur "SAVE" (ou bouton speciffique) et que la ca lance la macro ou il doit saisir le password.
c`est pas possible d`empecher la sauvegarde et donc de bloquer les choses.
pour sauvegarder, l`unique moyen est d`avoir le password. c`est ca que je cherche.
par contre je sais qu`une personne peut trouver le password avec un logiciel mais j`en suis pas sur ces problemes la.
je cherche juste : sauvegarde necessite password et pas d`autres moyens de sauvergarder sauf a connaitre le password
Bon, j'ai apporté quelques modif au code et cette fois, ca devrait fonctionner :
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim rep2 As Byte
If SaveAsUI = True Then Cancel = True
retour:
If rep <> "" Then
ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\test.xls"
End
End If
rep = InputBox("Veuillez saisir le mot de passe pour sauvegarder. ", "")
If rep = "motdepasse" Then
ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\test.xls"
Else
rep2 = MsgBox("Le mot de passe est incorrect, voulez-vous le resaisir ?", vbYesNo + vbExclamation, "")
If rep2 = vbYes Then
GoTo retour:
Else
Cancel = True
End
End If
End If
End Sub
Il faut egalemen que tu rajoutes un module dans lequel tu places le code suivant : Public rep As String
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD