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

Comment empêcher enregistrement sans macro sous Excel 2007

6 réponses
Avatar
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.

Remerciements et sinc=E8res salutations.

Christophe

6 réponses

Avatar
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
Avatar
Christophe
Bonjour:

Une idée de la macro à écrire.

Merci.

Christophe
Avatar
Vincnet.
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





Avatar
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
Avatar
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






Avatar
Christophe
Bonjour:

Merci à tous. Très très ingenieu.

Christophe