SaveAs au lieu de Save

  • Initiateur de la discussion Initiateur de la discussion Jam
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Jam

XLDnaute Accro
Bonjour,

J'ai un fichier modèle pour lequel je ne souhaite aucune modification. Donc, si quelqu'un veux l'enregistrer il faut proposer un SaveAs à la place. Bref, je bloque sur ce point.
Quelqu'un aurait-il une suggestion ?
 
Re : SaveAs au lieu de Save

Bonjour Jam, bonjour le forum,

Essaie avec la macro suivante à placer dans le composant ThisWorkbook.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
MsgBox "Sauvegarde non autorisée ! Vous devez utiliser la commande : Enregistrer Sous..."
Cancel = True
End Sub
 
Re : SaveAs au lieu de Save

Salut,

En plus de la solution de Skoobi, tu peux éventuellement rajouter un truc de ce genre dans le module ThisWorkbook de ton fichier :
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI = False Then
    MsgBox "Pas possible par ce bouton, clicker sur Enregistrer sous"
End If
End Sub

@+

Edit: Damned, encore toi Robert !!!! 😛
 
Re : SaveAs au lieu de Save

Salut Job, Robert, Porcinet,

Cette solution ne me plaisait pas vraiment...car elle n'empêche pas l'écrasement du fichier contrairement à l'option de Skoobie:

Code:
ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly

A+ et merci quand même
 
Re : SaveAs au lieu de Save

Bonjour à tous,

Ouah, quelle rapidité... il n'y avait personne, je rafraichis et... plein de monde.
Bon, ma proposition quand même :

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim Rep
    Cancel = True
    Rep = Application.GetSaveAsFilename(InitialFileName:=Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 4) & "-copie.xls", Filefilter:="Fichiers Excel (*.xls), *.xls")
    If Rep = False Then Exit Sub
    If Rep = ThisWorkbook.FullName Then
        MsgBox "Impossible d'écraser le fichier original - Action annulée"
    Else
        Application.EnableEvents = False
        ThisWorkbook.SaveAs Filename:=Rep
        Application.EnableEvents = True
    End If
End Sub

Une remarque : quelle que soit la méthode choisie, si elle passe par VBA, elle se répercutera évidement sur la copie qui à son tour ne pourra pas être enregistrée normalement... à moins de supprimer le code VBA
 
Re : SaveAs au lieu de Save

Bonsoir Jam, skoobi, job75, Robert, tototiti2008, le Forum,

Et pourquoi pas l'enregistrer directement comme Modèle de Classeur (.xlt) ?

Si ce classeur .xlt est lancé directement depuis l'explorateur Windows par double-clic (ce qui est quand même le cas le plus courant) ou même un raccourci , alors l'utilisateur ne pourra pas l'écraser et sera d'office invité à l'enregistrer sous un format .xls classique après modification.

Et si tu veux blinder la chose, alors tu mets aussi le fichier .xlt directement en lecture seule dans ses propriétés.

C'est économique et ça peut aussi éviter une usine (pardon) VBA inutile.

Cordialement,

EDITION: Arf, le temps d'écrire le post, pas vu l'arrivée de Jean-Marcel... Bonsoir à toi ! 😉
 
Dernière édition:
Re : SaveAs au lieu de Save

Salut à tous,

Suis parti trop vite hier et n'ai pas vu toutes vos nouvelles suggestions. La soluce de Tototiti est celle qui me convient le plus car j'ai en effet besoin d'enregistrer une nouvelle version du fichier à chaque modification (oui je sais va y avoir du fichier au kilomètre, mais c'est comme ça).

@Porcinet: une extension ne transforme pas un fichier en un autre. Elle permet de faire le lien entre une appli et les fichiers qui fonctionnent avec. Tout fichier comporte un en-tête qui le décrit et permet à l'application qui le lance de vérifier son "identité/compatibilité". On peut donc dans certain cas tromper l'appli en renommant un xls en xlt, mais un xls en doc ça marchera pas 🙂
 
Re : SaveAs au lieu de Save

Bonjour à tous,

Mais je pense que les idées de Jean-MArcel et Dider sont tout de même les meilleures.. plutôt qu'un code VBA (qui se répercutera sur les copies), et même si je suis flatté que tu choisisses le mien 🙂, pourquoi ne pas passer par un simple modèle ??
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
14
Affichages
671
Réponses
2
Affichages
290
Réponses
1
Affichages
183
Retour