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

Empêcher d'enregistrer ?

22 réponses
Avatar
Patrick24
Bonjour,
J'aimerai empêcher l'enregistrement de mon modèle
J'ai essayé :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
' empêche d'enregistrer-sous
If SaveAsUI = True Then Cancel = True ' fonctionne très bien
' et j'ai essayé :
Cancel = True
' la effectivement je ne peux plus enregistrer et enregistrer-sous mais le
problème c'est que je ne peux même pas enregistrer la macro pour la
sauvegarder !
End Sub

Comment je dois faire ?
Merci de votre aide.
Patrick24

10 réponses

1 2 3
Avatar
Essart
Bonjour,

Ce que je te proposerais de faire, c'est de créer dans un module une
procédure (avec accès par raccourci comme CTRL W...)
où les macros événementielles seraient temporairement désactivées ... tel :

Sub enregistrement()
' Touche de raccourci du clavier: Ctrl+w par ex
Application.EnableEvents = False
' pour un "Enregistrer sous"
ActiveWorkbook.SaveAs
Filename:="C:Documents and
SettingsUtilisateur_du_PCBureauMon_Classeur.xls", _
' à adapter
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse
' ou ActiveWorkbook.Save pour un simple enregistrement
Application.EnableEvents = True
End Sub

Essart

"Patrick24" a écrit dans le message de news:
%
Bonjour,
J'aimerai empêcher l'enregistrement de mon modèle
J'ai essayé :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
' empêche d'enregistrer-sous
If SaveAsUI = True Then Cancel = True ' fonctionne très bien
' et j'ai essayé :
Cancel = True
' la effectivement je ne peux plus enregistrer et enregistrer-sous mais le
problème c'est que je ne peux même pas enregistrer la macro pour la
sauvegarder !
End Sub

Comment je dois faire ?
Merci de votre aide.
Patrick24


Avatar
LSteph
Bonjour,

1-Oui fonctionne mais tel que:
-cela n'empêchera pas depuis l'explorateur de renommer, copier ou
déplacer le fichier
-s'agissant d'un "modèle" si c'est bien le bon sens du terme
(fichier .xlt )
les classeurs générés renfermeront le même code, donc accuseront la
même disposition.

2-par ailleurs (ce qui répond à la question mais compromet un peu ton
objectif)
-ceux qui voudraient contourner aussi la mesure envisagée
soit tout simplement désactiver les macros
soit depuis une macro quelconque:

Application.enableeventsúlse
activeworkbook.saveas "cghjfgh.xls"
Application.enableevents=true

--
lSteph



On 6 oct, 20:29, "Patrick24" wrote:
Bonjour,
J'aimerai empêcher l'enregistrement  de mon modèle
J'ai essayé :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
' empêche d'enregistrer-sous
 If SaveAsUI = True Then Cancel = True  ' fonctionne très bien
' et j'ai essayé :
Cancel = True
' la effectivement je ne peux plus enregistrer et enregistrer-sous mais l e
problème c'est que je ne peux même pas enregistrer la macro pour la
sauvegarder !
End Sub

Comment je dois faire ?
Merci de votre aide.
Patrick24


Avatar
michdenis
Bonjour Patrick,

Si tu ouvres ton fichier sans activer les macros, cela ne t'empêche pas
d'y inscrire ta macro et d'enregistrer ton fichier... non ?



"Patrick24" a écrit dans le message de groupe de discussion :
#
Bonjour,
J'aimerai empêcher l'enregistrement de mon modèle
J'ai essayé :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
' empêche d'enregistrer-sous
If SaveAsUI = True Then Cancel = True ' fonctionne très bien
' et j'ai essayé :
Cancel = True
' la effectivement je ne peux plus enregistrer et enregistrer-sous mais le
problème c'est que je ne peux même pas enregistrer la macro pour la
sauvegarder !
End Sub

Comment je dois faire ?
Merci de votre aide.
Patrick24
Avatar
Essart
Bonjour MichDenis,

remarque plus que pertinente !

:-(

Essart

"michdenis" a écrit dans le message de news:

Bonjour Patrick,

Si tu ouvres ton fichier sans activer les macros, cela ne t'empêche pas
d'y inscrire ta macro et d'enregistrer ton fichier... non ?



"Patrick24" a écrit dans le message de groupe de
discussion :
#
Bonjour,
J'aimerai empêcher l'enregistrement de mon modèle
J'ai essayé :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
' empêche d'enregistrer-sous
If SaveAsUI = True Then Cancel = True ' fonctionne très bien
' et j'ai essayé :
Cancel = True
' la effectivement je ne peux plus enregistrer et enregistrer-sous mais le
problème c'est que je ne peux même pas enregistrer la macro pour la
sauvegarder !
End Sub

Comment je dois faire ?
Merci de votre aide.
Patrick24



Avatar
LSteph
;o)) autre remarque pertinente ou pas
C'est ce que je venais de dire!!
soit tout simplement désactiver les macros



--
lSteph

On 7 oct, 13:41, "Essart" wrote:
Bonjour MichDenis,

remarque plus que pertinente !

:-(

Essart

"michdenis" a écrit dans le message de news:




> Bonjour Patrick,

> Si tu ouvres ton fichier sans activer les macros, cela ne t'empêche p as
> d'y inscrire ta macro et d'enregistrer ton fichier... non ?

> "Patrick24" a écrit dans le message de groupe de
> discussion :
> #
> Bonjour,
> J'aimerai empêcher l'enregistrement  de mon modèle
> J'ai essayé :
> Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
> Boolean)
> ' empêche d'enregistrer-sous
> If SaveAsUI = True Then Cancel = True  ' fonctionne très bien
> ' et j'ai essayé :
> Cancel = True
> ' la effectivement je ne peux plus enregistrer et enregistrer-sous mais le
> problème c'est que je ne peux même pas enregistrer la macro pour la
> sauvegarder !
> End Sub

> Comment je dois faire ?
> Merci de votre aide.
> Patrick24- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
LSteph
C'est bien ce que je disais si tu relis ce n'est pas cela le pire!

;o))

On 7 oct, 12:37, "michdenis" wrote:
Bonjour Patrick,

Si tu ouvres ton fichier sans activer les macros, cela ne t'empêche pas
d'y inscrire ta macro et d'enregistrer ton fichier... non ?

"Patrick24" a écrit dans le message de groupe de d iscussion :
#
Bonjour,
J'aimerai empêcher l'enregistrement  de mon modèle
J'ai essayé :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
' empêche d'enregistrer-sous
 If SaveAsUI = True Then Cancel = True  ' fonctionne très bien
' et j'ai essayé :
Cancel = True
' la effectivement je ne peux plus enregistrer et enregistrer-sous mais l e
problème c'est que je ne peux même pas enregistrer la macro pour la
sauvegarder !
End Sub

Comment je dois faire ?
Merci de votre aide.
Patrick24


Avatar
michdenis
Votre honneur,
Je ne suis coupable de rien, je n'ai rien demandé...

à l'égard de la proposition que j'ai faite, la mienne est supérieur !
car plus compréhensible que la tienne !!! Lorsque tu écris :
"soit tout simplement désactiver les macros", toi, tu sais de
quoi tu parles mais ce n'est pas nécessairement évident pour
celui qui n'a pas tes compétences en Excel.

Vous comprendrez votre honneur que ce n'est pas parce que l'on
est traduit devant les tribunaux que l'on connaît nécessairement le jargon juridique!
;-)



"LSteph" a écrit dans le message de groupe de discussion :

C'est bien ce que je disais si tu relis ce n'est pas cela le pire!

;o))

On 7 oct, 12:37, "michdenis" wrote:
Bonjour Patrick,

Si tu ouvres ton fichier sans activer les macros, cela ne t'empêche pas
d'y inscrire ta macro et d'enregistrer ton fichier... non ?

"Patrick24" a écrit dans le message de groupe de discussion :
#
Bonjour,
J'aimerai empêcher l'enregistrement de mon modèle
J'ai essayé :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
' empêche d'enregistrer-sous
If SaveAsUI = True Then Cancel = True ' fonctionne très bien
' et j'ai essayé :
Cancel = True
' la effectivement je ne peux plus enregistrer et enregistrer-sous mais le
problème c'est que je ne peux même pas enregistrer la macro pour la
sauvegarder !
End Sub

Comment je dois faire ?
Merci de votre aide.
Patrick24


Avatar
LSteph
;-) bon bon je m'incline sur ce point que vous dites fort bien mieux
mais me semble primordial (avec explicitations plus nourries)
de souligner les deux autres points bien plus épineux:

1- si on enregistre un modèle
qui ne doit pas changer, ce même modèle va générer un fichier qui
comprendra aussi cette empêchement d'enregistrer sous
Est-ce bien ce que l'on veut?

2-Connaissant le simple fait
"soit tout simplement désactiver les macros",


c'est aussi ce que peut faire l'utilisateur.
Est-ce bien ce que l'on veut?

Non est culpa, ti absolvo (qui dirait)
:o)

--
lSteph

On 7 oct, 14:30, "michdenis" wrote:
Votre honneur,
Je ne suis coupable de rien, je n'ai rien demandé...

à l'égard de la proposition que j'ai faite, la mienne est supérieur !
car plus compréhensible que la tienne !!! Lorsque tu écris :
"soit tout simplement désactiver les macros", toi, tu sais de
quoi tu parles mais ce n'est pas nécessairement évident pour
celui qui n'a pas tes compétences en Excel.

Vous comprendrez votre honneur que ce n'est pas parce que l'on
est traduit devant les tribunaux que l'on connaît nécessairement le j argon juridique!
;-)

"LSteph" a écrit dans le message de groupe de disc ussion :

C'est bien ce que je disais si tu relis ce n'est pas cela le pire!

;o))

On 7 oct, 12:37, "michdenis" wrote:



> Bonjour Patrick,

> Si tu ouvres ton fichier sans activer les macros, cela ne t'empêche p as
> d'y inscrire ta macro et d'enregistrer ton fichier... non ?

> "Patrick24" a écrit dans le message de groupe de discussion :
> #
> Bonjour,
> J'aimerai empêcher l'enregistrement  de mon modèle
> J'ai essayé :
> Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
> Boolean)
> ' empêche d'enregistrer-sous
>  If SaveAsUI = True Then Cancel = True  ' fonctionne très bie n
> ' et j'ai essayé :
> Cancel = True
> ' la effectivement je ne peux plus enregistrer et enregistrer-sous mais le
> problème c'est que je ne peux même pas enregistrer la macro pour la
> sauvegarder !
> End Sub

> Comment je dois faire ?
> Merci de votre aide.
> Patrick24- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
michdenis
Je ne répondais qu'à la problématique du demandeur
quant à la sauvegarde de la procédure qu'on lui avait
suggérée.

Si cette approche lui convient, il est possible de faire
disparaître la procédure du ThisWorkbook dès que le
fichier modèle s'ouvre la première fois pour engendrer
un fichier "fils".
Je compte sur toi pour lui suggérer comment faire !
;-)


"LSteph" a écrit dans le message de groupe de discussion :

;-) bon bon je m'incline sur ce point que vous dites fort bien mieux
mais me semble primordial (avec explicitations plus nourries)
de souligner les deux autres points bien plus épineux:

1- si on enregistre un modèle
qui ne doit pas changer, ce même modèle va générer un fichier qui
comprendra aussi cette empêchement d'enregistrer sous
Est-ce bien ce que l'on veut?

2-Connaissant le simple fait
"soit tout simplement désactiver les macros",


c'est aussi ce que peut faire l'utilisateur.
Est-ce bien ce que l'on veut?

Non est culpa, ti absolvo (qui dirait)
:o)

--
lSteph

On 7 oct, 14:30, "michdenis" wrote:
Votre honneur,
Je ne suis coupable de rien, je n'ai rien demandé...

à l'égard de la proposition que j'ai faite, la mienne est supérieur !
car plus compréhensible que la tienne !!! Lorsque tu écris :
"soit tout simplement désactiver les macros", toi, tu sais de
quoi tu parles mais ce n'est pas nécessairement évident pour
celui qui n'a pas tes compétences en Excel.

Vous comprendrez votre honneur que ce n'est pas parce que l'on
est traduit devant les tribunaux que l'on connaît nécessairement le jargon juridique!
;-)

"LSteph" a écrit dans le message de groupe de discussion :

C'est bien ce que je disais si tu relis ce n'est pas cela le pire!

;o))

On 7 oct, 12:37, "michdenis" wrote:



> Bonjour Patrick,

> Si tu ouvres ton fichier sans activer les macros, cela ne t'empêche pas
> d'y inscrire ta macro et d'enregistrer ton fichier... non ?

> "Patrick24" a écrit dans le message de groupe de discussion :
> #
> Bonjour,
> J'aimerai empêcher l'enregistrement de mon modèle
> J'ai essayé :
> Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
> Boolean)
> ' empêche d'enregistrer-sous
> If SaveAsUI = True Then Cancel = True ' fonctionne très bien
> ' et j'ai essayé :
> Cancel = True
> ' la effectivement je ne peux plus enregistrer et enregistrer-sous mais le
> problème c'est que je ne peux même pas enregistrer la macro pour la
> sauvegarder !
> End Sub

> Comment je dois faire ?
> Merci de votre aide.
> Patrick24- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
Caetera
"Patrick24" a écrit dans le message de news:
%

J'aimerai empêcher l'enregistrement de mon modèle


:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
' empêche d'enregistrer-sous
If SaveAsUI = True Then Cancel = True ' fonctionne très bien
' et j'ai essayé :
Cancel = True
' la effectivement je ne peux plus enregistrer et enregistrer-sous mais le
problème c'est que je ne peux même pas enregistrer la macro pour la
sauvegarder !
End Sub

Comment je dois faire ?



******************

Et si tu conditionnais l'enregistrement à la saisie d'un mot de passe ?
Les grandes lignes :

Private Sub Workbook_BeforeSave(...)
lePasse
End sub

sub lePasse()
mdp=InputBox(...)
if mdp <> "xxxxxx" then end
end sub

Etc
1 2 3