Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Protéger un fichier Excel contre les sauvegardes

13 réponses
Avatar
omar_2891
Bonjour,

J'ai cr=E9=E9 un programme sur Excel qui sera utilis=E9 par plusieurs
personnes dans une entreprise, et j'ai peur que certains utilisateurs
face quelques conneries et sauvegarde juste apr=E8s, j'aimerai donc
interdire la sauvegarde du fichier avec un mot de passe. Pensez vous
que cela est possible? Si oui, j'attends vos suggestions.

En vous remerciant d'avance

Omar.

10 réponses

1 2
Avatar
Jean-François Aubert
Salut Omar,

Peutêtre quelque chose comme ceci:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Dim rep
rep = InputBox("Saisir le M de P", "Seulement le chef peut sauvegarder
!")
If rep <> "MonMotDePasse" Then
Cancel = True
Else
Cancel = False
End If
End Sub


--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


a écrit dans le message de news:

Bonjour,

J'ai créé un programme sur Excel qui sera utilisé par plusieurs
personnes dans une entreprise, et j'ai peur que certains utilisateurs
face quelques conneries et sauvegarde juste après, j'aimerai donc
interdire la sauvegarde du fichier avec un mot de passe. Pensez vous
que cela est possible? Si oui, j'attends vos suggestions.

En vous remerciant d'avance

Omar.
Avatar
Excel...lent
Salut omar,

Pourquoi faire compliqué quand on peut faire simple...lol

Juste réenregistrer ton fichier en "lecture seule".

Seul le détenteur du mdp ( donc toi ) pourra ouvrir ce fichier en écriture.

Fichier / Enregistrer sous... / Outils / Options générales...
tu saisis un mdp dans la partie " Mot de passe permettant l'accès en
écriture ", tu double la saisie et puis à la question " le fichier zaza.xls
existe déjà. Voule-vous l'écraser ? " tu réponds OUI.

A partir de là, l'ouverture de ton fichier passera d'abord par une fenêtre
où l'utilisateur qui n'a pas de mdp pourra l'ouvrir en cliquant sur "
lecture seule"

Cordialement.

Marc
Avatar
Pier
Salut Omar,

Peutêtre quelque chose comme ceci:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Dim rep
rep = InputBox("Saisir le M de P", "Seulement le chef peut sauvegarder
!")
If rep <> "MonMotDePasse" Then
Cancel = True
Else
Cancel = False
End If
End Sub




Bonsoir Jean-François,

ta suggestion en reponse à Omar m'interesse, j'ai donc récopié ton code
(dans "this woorbook" ) dans mon classeur mais apparemment cela ne
fonctionne pas et je ne vois pas pourquoi ?

Merci.

Pierre

Avatar
Pier
Salut omar,
Pourquoi faire compliqué quand on peut faire simple...lol
Juste réenregistrer ton fichier en "lecture seule".
Seul le détenteur du mdp ( donc toi ) pourra ouvrir ce fichier en écriture.
Fichier / Enregistrer sous... / Outils / Options générales...
tu saisis un mdp dans la partie " Mot de passe permettant l'accès en
écriture ", tu double la saisie et puis à la question " le fichier zaza.xls
existe déjà. Voule-vous l'écraser ? " tu réponds OUI.
A partir de là, l'ouverture de ton fichier passera d'abord par une fenêtre
où l'utilisateur qui n'a pas de mdp pourra l'ouvrir en cliquant sur "
lecture seule"
Cordialement.
Marc


Bonsoir Marc ;o)

Oui c'est vrai cette solution est plus simple et c'est celle que j'ai
appliqué pour le classeur sur lequel je travaille et que tu connais pour
m'avoir bien aidé dessus.
Plusieurs personnes de mon administration utilisent aussi mon classeur
maintenant et j'ai remarqué à l'utilisation que quelquefois (de manière
aléatoire ?) lorsque je suis en train de travailler (pour changer ou
modifier des données) sur le classeur, les collègues ont à l'ouverture
un message qui dit en substance "le classeur est reservé par Pierre,
voulez vous l'ouvrir en lecture seule ?" et c'est ce qu'ils choisissent
(et pour cause, ils n'ont pas le mot de passe !). Alors à l'ouverture du
classeur les macros ne fonctionnent pas et j'ai remarqué aussi que les
utilisateurs peuvent visualiser la feuille "Icones" qui normalement ne
devraient pas être visible !
C'est pourquoi une solution sans passer par la "lecture seule" me
conviendrait mieux.

Amicalement.
Pierre

Avatar
Jean-François Aubert
Salut Pierre,

Cela doit fonctionner, essaie avec un nouveau classeur.Attention aux
majuscules / minuscule du mot de passe.

--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


"Pier" a écrit dans le message de news:
44a02279$0$4442$
Salut Omar,

Peutêtre quelque chose comme ceci:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Dim rep
rep = InputBox("Saisir le M de P", "Seulement le chef peut
sauvegarder !")
If rep <> "MonMotDePasse" Then
Cancel = True
Else
Cancel = False
End If
End Sub




Bonsoir Jean-François,

ta suggestion en reponse à Omar m'interesse, j'ai donc récopié ton code
(dans "this woorbook" ) dans mon classeur mais apparemment cela ne
fonctionne pas et je ne vois pas pourquoi ?

Merci.

Pierre



Avatar
Excel...lent
Salut Pierre,

Content de te lire.

Il faudrait que tu me renvoye le fichier car je n'ai rien gardé.

De mémoire il me semble que la feuille "icônes" servait à stocker les images
servant d'icônes aux boutons des toolbar...

Si tu me renvois tout je regarde. Promis.

Sinon comme je te l'avais dit il y a pleins de gens extras sur ce NG et
surtout mieux calé que moi, alors n'hésite pas tu ne me vexera pas. Qui sait
j'apprendrais même quelquechose.... lol

Amicalement.

Marc
Avatar
Pier

Salut Pierre,
Content de te lire.
Il faudrait que tu me renvoye le fichier car je n'ai rien gardé.
De mémoire il me semble que la feuille "icônes" servait à stocker les images
servant d'icônes aux boutons des toolbar...
Si tu me renvois tout je regarde. Promis.
Sinon comme je te l'avais dit il y a pleins de gens extras sur ce NG et
surtout mieux calé que moi, alors n'hésite pas tu ne me vexera pas. Qui sait
j'apprendrais même quelquechose.... lol
Amicalement.
Marc


Salut Marc,

Le classeur que j'utilise içi à la maison ne pose aucun problème.
Inutile donc que je te l'envoie pour que tu regardes" ce qui ne va pas.
En fait, j'ai envoyé le classeur au service informatique. Le fichier
.XLS a été enregistré sur un serveur pour être utilisé par plusieurs
personnes. Jusque là tout va bien, chacun a accès au classeur et les
macros que tu as crées fonctionnent parfaitement.
Seulement pour éviter qu'un utilisateur du fichier puissent changer des
données et sauvegarder sur le serveur, le service informatique a
réenregistrer mon fichier en lecture seule et je suis le seul à pouvoir
l'ouvrir en écriture avec un mot de passe.
Cela me parait cohérent et évite une sauvegarde par un autre utilisateur.

Seulement, j'ai remarqué que depuis, lorsque j'ai ouvert (en écriture)
sur mon poste le classeur pour changer des données, ou en ajouter de
nouvelles, lorsque mon collègue charge le classeur il obtient un message
du type (de memoire) "le fichier est verrouillé par pier, voulez-vous
ouvrir en lecture seule". Mon collègue l'ouvre donc en lecture seule et
là il a accès au classeur avec les macros qui ne fonctionnent pas et
l'affichage de la feuille "Icones" (qui sert bien à stocker les images
de ma toolbar).
Dès que je quitte le classeur, mon collègue peut le réouvrir normalement
en lecture seule avec tout fonctionnant bien.
C'est génant parce que cela m'empêche de travailler sur le classeur
pendant que les autres collègues sont susceptibles de le charger.

Donc, j'aimerais enlever la protection lecture seule et empêcher la
sauvegarde par une macro au lancement.
J'ai bien pensé enlever les fonctions "Enregistrer" et "Enregistrer
sous" de la barre menu mais cela n'empêche pas la sauvegarde par la
combinaison des touches clavier... ou par le message à la fermeture du
classeur...

C'est pour cela que le code de Jean François me semble bien :

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Dim rep
rep = InputBox("Saisir le M de P", "Seulement le chef peut sauvegarder
!")
If rep <> "MonMotDePasse" Then
Cancel = True
Else
Cancel = False
End If
End Sub

mais cela ne fonctionne pas chez moi... et je ne sais pas pourquoi ??

J'espère avoir été clair et je te remercie à l'avance pour ton aide
éventuelle.

Amicalement.
Pierre

Avatar
Pier
Salut Pierre,
Cela doit fonctionner, essaie avec un nouveau classeur.Attention aux
majuscules / minuscule du mot de passe.


Salut Jean-François,

J'ai crée un classeur comme tu me le suggères et j'ai intégré ton code
dans "this woorbook" Voir image : http://klaud.free.fr/mdp.jpg
mais rien ne se passe quand j'essaie de sauvegarder le classeur. Pas de
"InputBox" qui s'affiche... donc je risque pas de faire des erreurs avec
majuscule/minuscules... Rien et je peux toujours sauvegarder !

Peux-tu regarder l'image STP, peut-être que j'ai pas rentré ton code au
bon endroit ??
Mon classeur est là : http://klaud.free.fr/mdp.xls

D'avance, Merci !

Pierre

Avatar
Excel...lent
Re mon pierre,

Excuse de me meler. Le code de Jean-Francois n'y est pour rien.

Par contre tu es victime du copier-coller sauvage. As-tu remarqué quand tu
va voir le code dans VBA il y a 2 lignes en rouge. Cela veut dire qu'elles
ne sont pas correcte.

Bref corrigé cela donne ça : http://cjoint.com/?gBtoQOaaUH

Sinon j'ai bien noté ton soucis et j'y réfléchis.

Amicalement.

Marc
Avatar
Pier
Re mon pierre,
Excuse de me meler. Le code de Jean-Francois n'y est pour rien.
Par contre tu es victime du copier-coller sauvage. As-tu remarqué quand tu
va voir le code dans VBA il y a 2 lignes en rouge. Cela veut dire qu'elles
ne sont pas correcte.
Bref corrigé cela donne ça : http://cjoint.com/?gBtoQOaaUH
Sinon j'ai bien noté ton soucis et j'y réfléchis.
Amicalement.
Marc


Bonsoir Marc,
Comme d'habitude, tu as trouvé ce qui m'empêchait d'utiliser le code de
Jean-François.
Maintenant, cela marche parfaitement maintenant et mon problème est donc
réglé.
Ainsi, les sauvegardes deviennent impossibles pour les autres
utilisateurs sans que le classeur soit protégé.
Une fois de plus, je te remercie sans oublier bien sûr Jean-François
pour son aide précieuse.

Amicalement.

Pierre

1 2