Comment empêcher enregistrement sans macro sous Excel 2007
6 réponses
Christophe
Bonjour:
J'ai un classeur excel avec un modules contenant plusieurs dizaines de
macros dand un module. Cette application excel est distribu=E9e =E0 de
nombreux utilisateurs en interne.
A deux reprises d=E9j=E0, des utilisateurs m'ont indiqu=E9 que l'applicatio=
n
ne marchait plus. Je me suis rendu compte que bien que prot=E9g=E9es par
un mot de passe les macros avaient disparu. Je pense que le classeur
qui =E9tait =E0 l'origine enregistr=E9 au format 97-2003 a probablement =E9=
t=E9
enregistr=E9 par des utilisateurs utilisant Excel 2007 dans un format
qui ne conserve pas les macros.
Comment emp=EAcher les utilisateurs d'enregistrer ce classeur sous un
format sans macro y compris par inadvertance.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Daniel.C
Bonjour. Excellente question. On peut le faire par macro, si l'utilisateur active les macros... Cordialement. Daniel "Christophe" a écrit dans le message de news:
Bonjour:
J'ai un classeur excel avec un modules contenant plusieurs dizaines de macros dand un module. Cette application excel est distribuée à de nombreux utilisateurs en interne.
A deux reprises déjà, des utilisateurs m'ont indiqué que l'application ne marchait plus. Je me suis rendu compte que bien que protégées par un mot de passe les macros avaient disparu. Je pense que le classeur qui était à l'origine enregistré au format 97-2003 a probablement été enregistré par des utilisateurs utilisant Excel 2007 dans un format qui ne conserve pas les macros.
Comment empêcher les utilisateurs d'enregistrer ce classeur sous un format sans macro y compris par inadvertance.
Remerciements et sincères salutations.
Christophe
Bonjour.
Excellente question. On peut le faire par macro, si l'utilisateur active les
macros...
Cordialement.
Daniel
"Christophe" <cjoly@mail.doc.gov> a écrit dans le message de news:
45b29e8c-1708-4816-bd82-3c415dd8813d@a70g2000hsh.googlegroups.com...
Bonjour:
J'ai un classeur excel avec un modules contenant plusieurs dizaines de
macros dand un module. Cette application excel est distribuée à de
nombreux utilisateurs en interne.
A deux reprises déjà, des utilisateurs m'ont indiqué que l'application
ne marchait plus. Je me suis rendu compte que bien que protégées par
un mot de passe les macros avaient disparu. Je pense que le classeur
qui était à l'origine enregistré au format 97-2003 a probablement été
enregistré par des utilisateurs utilisant Excel 2007 dans un format
qui ne conserve pas les macros.
Comment empêcher les utilisateurs d'enregistrer ce classeur sous un
format sans macro y compris par inadvertance.
Bonjour. Excellente question. On peut le faire par macro, si l'utilisateur active les macros... Cordialement. Daniel "Christophe" a écrit dans le message de news:
Bonjour:
J'ai un classeur excel avec un modules contenant plusieurs dizaines de macros dand un module. Cette application excel est distribuée à de nombreux utilisateurs en interne.
A deux reprises déjà, des utilisateurs m'ont indiqué que l'application ne marchait plus. Je me suis rendu compte que bien que protégées par un mot de passe les macros avaient disparu. Je pense que le classeur qui était à l'origine enregistré au format 97-2003 a probablement été enregistré par des utilisateurs utilisant Excel 2007 dans un format qui ne conserve pas les macros.
Comment empêcher les utilisateurs d'enregistrer ce classeur sous un format sans macro y compris par inadvertance.
Bonjour, Il faut aller dans le module ThisWorkbook et utiliser l'événement BeforeSave. Comme je n'ai pas (encore) XL2007, je ne peux pas te dire les paramètres à passer, mais tu dois pouvoir forcer le paramètre qui détermine l'enregistrement sans macro pour que l'enregistrement se fasse avec. -- A+
V.
"Christophe" a écrit :
Bonjour:
Une idée de la macro à écrire.
Merci.
Christophe
Bonjour,
Il faut aller dans le module ThisWorkbook et utiliser l'événement
BeforeSave. Comme je n'ai pas (encore) XL2007, je ne peux pas te dire les
paramètres à passer, mais tu dois pouvoir forcer le paramètre qui détermine
l'enregistrement sans macro pour que l'enregistrement se fasse avec.
--
A+
Bonjour, Il faut aller dans le module ThisWorkbook et utiliser l'événement BeforeSave. Comme je n'ai pas (encore) XL2007, je ne peux pas te dire les paramètres à passer, mais tu dois pouvoir forcer le paramètre qui détermine l'enregistrement sans macro pour que l'enregistrement se fasse avec. -- A+
V.
"Christophe" a écrit :
Bonjour:
Une idée de la macro à écrire.
Merci.
Christophe
Daniel.C
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Cancel = True ThisWorkbook.Save End Sub Petit ennui, tu ne peux plus faire d'"Enregistrer sous". Daniel "Christophe" a écrit dans le message de news:
Bonjour:
Une idée de la macro à écrire.
Merci.
Christophe
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Cancel = True
ThisWorkbook.Save
End Sub
Petit ennui, tu ne peux plus faire d'"Enregistrer sous".
Daniel
"Christophe" <cjoly@mail.doc.gov> a écrit dans le message de news:
43de08b1-e2b8-4542-948b-488c9c6d393d@y21g2000hsf.googlegroups.com...
Bonjour:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Cancel = True ThisWorkbook.Save End Sub Petit ennui, tu ne peux plus faire d'"Enregistrer sous". Daniel "Christophe" a écrit dans le message de news:
Bonjour:
Une idée de la macro à écrire.
Merci.
Christophe
Vincnet.
Sur l'idée de Daniel.C, mais avec possibilité d'utiliser SaveAs : Option Explicit
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Dim strFilename Application.EnableEvents = False Cancel = True If SaveAsUI Then strFilename = Application.GetSaveAsFilename If strFilename = False Then ThisWorkbook.SaveAs strFilename, xlNormal End If Else Application.DisplayAlerts = False ThisWorkbook.SaveAs ThisWorkbook.FullName, xlNormal Application.DisplayAlerts = True End If Application.EnableEvents = True End Sub
-- A+
V.
"Daniel.C" a écrit :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Cancel = True ThisWorkbook.Save End Sub Petit ennui, tu ne peux plus faire d'"Enregistrer sous". Daniel "Christophe" a écrit dans le message de news:
Bonjour:
Une idée de la macro à écrire.
Merci.
Christophe
Sur l'idée de Daniel.C, mais avec possibilité d'utiliser SaveAs :
Option Explicit
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim strFilename
Application.EnableEvents = False
Cancel = True
If SaveAsUI Then
strFilename = Application.GetSaveAsFilename
If strFilename = False Then
ThisWorkbook.SaveAs strFilename, xlNormal
End If
Else
Application.DisplayAlerts = False
ThisWorkbook.SaveAs ThisWorkbook.FullName, xlNormal
Application.DisplayAlerts = True
End If
Application.EnableEvents = True
End Sub
--
A+
V.
"Daniel.C" a écrit :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Cancel = True
ThisWorkbook.Save
End Sub
Petit ennui, tu ne peux plus faire d'"Enregistrer sous".
Daniel
"Christophe" <cjoly@mail.doc.gov> a écrit dans le message de news:
43de08b1-e2b8-4542-948b-488c9c6d393d@y21g2000hsf.googlegroups.com...
Bonjour:
Sur l'idée de Daniel.C, mais avec possibilité d'utiliser SaveAs : Option Explicit
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Dim strFilename Application.EnableEvents = False Cancel = True If SaveAsUI Then strFilename = Application.GetSaveAsFilename If strFilename = False Then ThisWorkbook.SaveAs strFilename, xlNormal End If Else Application.DisplayAlerts = False ThisWorkbook.SaveAs ThisWorkbook.FullName, xlNormal Application.DisplayAlerts = True End If Application.EnableEvents = True End Sub
-- A+
V.
"Daniel.C" a écrit :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Cancel = True ThisWorkbook.Save End Sub Petit ennui, tu ne peux plus faire d'"Enregistrer sous". Daniel "Christophe" a écrit dans le message de news: