Empêcher "Enregistrer sous" autrement qu'en XLSM

rx.stephane

XLDnaute Nouveau
Bonjour,

J'ai créé un formulaire contenant une macro.

En théorie : Une fois ce formulaire rempli, les utilisateurs l'enregistrent avec le nom qu'ils veulent mais en conservant le préfixe du nom du fichier (ex : TOTO_nom au choix.xlsm), à l'emplacement qu'ils veulent, mais en conservant le format XLSM.

En pratique : La plupart des utilisateurs respectent la procédure énoncée ci-dessus, mais il y a du turn over dans ce service et les nouveaux arrivants ne sont pas forcement au courant de tout, tout de suite... et certains enregistrent le fichier en XLS, XLSX...

Existe-t-il un moyen pour empêcher l'"Enregistrer sous" autrement qu'en XLSM (et en conservant le préfixe du nom de fichier).

J'ai cherché sur le forum mais je n'ai rien trouvé qui me mette sur une piste.

Merci par avance pour votre aide.

rx.stephane
 

pierrejean

XLDnaute Barbatruc
Re : Empêcher "Enregistrer sous" autrement qu'en XLSM

Bonjour rx.stephane

Atester:
Mettre dans thisworkbook:

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If UCase(Right(ThisWorkbook.Name, 5)) <> ".XLSM" Then
  Cancel = True
  MsgBox ("Vous devez enregistrer sous .xlsm")
End If
End Sub
 

rx.stephane

XLDnaute Nouveau
Re : Empêcher "Enregistrer sous" autrement qu'en XLSM

Bonjour pierrejean,

Merci de votre réponse si rapide.
J'ai copié/collé votre code dans thisworkbook mais cela n'empêche pas de pouvoir une 1ère fois "Enregistrer sous" en XLS ou XLSX et de fermer le fichier.
Par contre si je ne referme pas le fichier après ce 1er "Enregistrer sous", lorsque je veux faire un 2ème "Enregistrer sous" ou simplement "Enregistrer" alors là j'ai la MSGbox qui apparaît.

Voyez-vous une solution?

Merci.
 

ralph45

XLDnaute Impliqué
Re : Empêcher "Enregistrer sous" autrement qu'en XLSM

Bonjour rx.stephane, pierrejean,

La solution de pierrejean est la bonne et il n'y a pas de solution complémentaire : il faut bien enregistrer le code une premières fois pour qu'il s'applique à chaque fois par la suite.

En gros, tu le fais une fois manuellement et tu files le fichier aux autres utilisateurs qui ne pourront faire autrement qu'enregistrer en .xlsxm...

A+
 

rx.stephane

XLDnaute Nouveau
Re : Empêcher "Enregistrer sous" autrement qu'en XLSM

pierrejean, ralph45,

merci pour votre aide mais je vous avoue que là, j'ai du mal :
Mon fichier de base (ce fameux formulaire contenant une macro) est déjà un fichier XLSM dont je veux que l'extension en XLSM soit conservée une fois le fichier

enregistré sous par les utilisateurs.

"il faut bien enregistrer le code une premières fois pour qu'il s'applique à chaque fois par la suite.
En gros, tu le fais une fois manuellement et tu files le fichier aux autres utilisateurs qui ne pourront faire autrement qu'enregistrer en .xlsxm"


J'ai enregistré le fichier XLSM (qui contient le code de pierrejean dans thisworkbook) en le renommant mais en conservant l'extension XLSM et je le ferme.
Une fois ré-ouvert, rien ne m'empêche de l"Enregistrer sous" en XLS ou XLSX après avoir forcé le message d'Excel qui annonce qu'un Projet VB ne peut être enregistré

dans un classeur sans macro.

De plus, ralph45, je ne voie pas dans le code de pierrejean ce que je dois adapter si mon fichier ne commence plus par TOTO_.

Je suis néophyte, beaucoup de choses m'échappent...

Si vous avez la patience de m'aider, merci.

rx.stephane
 

Discussions similaires

Statistiques des forums

Discussions
312 249
Messages
2 086 601
Membres
103 257
dernier inscrit
foujul