Mot de passe d'ouverture uniquement sur les autres PC

mathieulai

XLDnaute Nouveau
Bonjour, j'ai un fichier excel 2003 que j'ouvre très régulièrement.

Comportant des données confidentielles j'ai opté pour un mot de passe à l'ouverture (malgré la faiblesse de cette sécurité c'est déjà un bon pourcentage des éventuels tiers qui sera dissuadé).
Mais donc je dois le saisir à chaque ouverture...
J'aimerais que sur mon propre ordi (que je peux identifier en VBA par le numéro de série du disque dur) je n'ai pas à le saisir mais je sais pas comment faire.

Merci de votre aide.
 

eriiic

XLDnaute Barbatruc
Bonjour,

pourquoi pas 2 versions tout simplement ?
Celle avec mot de passe que tu diffuses, l'autre sans pour toi.

Sinon avec Workbooks.Open tu peux ouvrir un classeur protégé en passant le mot de passe.
Regarde l'aide sur cette méthode.
eric
 

sousou

XLDnaute Barbatruc
Bonjour
Tu peux positionner dans ton pc un fichier du genre txt.
A l'ouverture de l'appli, si il trouve, le fichier, ou si il y lit un éventuel mdp alors il s'ouvre.
Mais pour plus de sécu du devras mettre un mot de passe sur ton projet vba
exemple: sans gestion du mot de passe, juste voir si le fichier existe:
Private Sub Workbook_Open()

Set fso = CreateObject("scripting.filesystemobject")
On Error Resume Next
Set mdp = fso.getfile(ThisWorkbook.Path & "\mdp.txt")
If Err.Number <> 0 Then ThisWorkbook.Close savechanges = False
On Error GoTo 0

End Sub
 
Dernière édition:

mathieulai

XLDnaute Nouveau
Merci pour vos contributions.

-> @eriiiic :
Deux versions ça me paraît fastidieux.
Pour contextualiser c'est un fichier que je modifie continuellement. Il est synchronisé sur un NAS ce qui me permet de le consulter depuis n'importe quel PC quand je suis en déplacement (je n'ai pas de notebook :) ).
Donc mon souhait c'est qu'il soit un minimum protégé quand je l'ouvre depuis des PC qui ne sont pas mon fixe.
Actuellement le mot de passe est activé depuis "Enregistrer sous > Outils > Options générales...". Ce que j'aimerais c'est le désactiver ici et placer un code VBA à l'ouverture du fichier qui demande la saisie d'un mot de passe lorsqu'il détecte qu'il n'est pas sur mon pc (via le numéro de série du disque dur).

-> @sousou :
Je n'ai pas bien compris ta proposition.
 

mathieulai

XLDnaute Nouveau
Je me suis résolu à passer par un classeur pivot avec le code suivant :

Private Sub Workbook_Open()
Workbooks.Open Filename:="C:\Users\***.xls", Password:="****"
ThisWorkbook.Close SaveChanges:=False
End Sub

ça marche bien sauf que le fichier ouvert considère qu'il y a eu des modifications apportées puisqu'il me demande systématiquement si je souhaite enregistrer les modifs quand je ferme le fichier (alors que je n'ai rien changé).
Puis-je modifier mon code pour que cela n'arrive pas ?
Merci
 

eriiic

XLDnaute Barbatruc
Pas facile de deviner celui concerné (?!?)
Quoiqu'il en soit, dans celui qui t'embête :
VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ThisWorkbook.Saved = True
End Sub
lui fera croire qu'il l'a déjà enregistré.
eric
 

Discussions similaires