[RESOLU] Comment interdire changement du nom classeur ?

  • Initiateur de la discussion Initiateur de la discussion CG2000
  • 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 !

CG2000

XLDnaute Occasionnel
Bonsoir le site, le forum et mes Amis d'Excel,

Comment interdire le changement du nom du classeur Excel ? 😕

Dans l'exemple si le nom du claseur est différent du nom "Copyright © excel-downloads.com" alors il se ferme.
Le but rechercher est d'éviter de modifier le nom du classeur.

En fait je but sur deux recherches :

Première recherche: Si différent de "Copyright © excel-downloads.com" alors fermeture du classeurs.
Seconde recherche: détruire le fichier si différent de "Copyright © excel-downloads.com"

Merci à tous de vos oriantations et aides.

CG2000
 

Pièces jointes

Dernière édition:
Re : Comment interdire changement du nom classeur ?

Bonjour,

En désactivant la fonction "enregistrer sous"

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)   
If SaveAsUI = True Then Cancel = True 
End Sub

De cette manière, l'utilisateur ne pourra qu'enregistrer sous le nom actuel du classeur
alors qu'avec "enregistrer sous" il pourrait le modifier.
 
Dernière édition:
Re : Comment interdire changement du nom classeur ?

Bonjour à tous,
Salut Philippe,

Avec les balises :

VB:
Option Explicit

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI = True Then Cancel = True
End Sub

Mais le nom pourra être modifié dans l'Explorateur...

A+ à tous
 
Dernière édition:
Re : Comment interdire changement du nom classeur ?

Bonjour à tous,

Si le nom est changé par l'Explorateur, le fichier se ferme :

VB:
Option Explicit


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI = True Then Cancel = True
End Sub


Private Sub Workbook_Open()
If ActiveWorkbook.Name <> "Copyright © excel-downloads.com.xls" Then ActiveWorkbook.Close
End Sub

Le Option Explicit te force à déclarer les variables. Il est aussi une aide à la programmation.
Perso, j'écris tout en minuscule et si la syntaxe est bonne les majuscules se placent automatiquement.

A++
A+ à tous
 
Re : Comment interdire changement du nom classeur ?

Bonjour, Philippe, JC.

On peut également par macro, si le nom du fichier est différent de votre constante ("Copyright © excel-downloads.com"), créer une feuille vierge à l'ouverture, et effacer les autres avec le workbook.open. Et forcer l'activation des macros pour afficher les feuilles utiles.
Avec la réserve qu'un bidouilleur connaissant VBA pourra toujours passer outre.
 
Re : Comment interdire changement du nom classeur ?

Re le forum, JC salut Patrick

ok JC,merci pour l'explication du "option explicit" 😎

Patrick, si VBA est protégé, il ne pourra pas passer outre (normalement lol)


EDIT : je m'excuse auprès de CG2000 pour ce petit "hors sujet"
 
Re : Comment interdire changement du nom classeur ?

Bonsoir le site, le forum, les amis d'Excel,

Mercis bien Philippe, JC et Patrick pour les solutions et réponses.

Patrick, serait-il possible de montrer ton exemple qui donnerait une verion complémentaire à JC ?

JC, exelente ta deuxième solution. Elle me convient parfaitement. Merci également pour l'explication du "option explicit" et ce grace à l'intervention de Philippe.

Merci, bien à tous.

CG2000
 
Re : Comment interdire changement du nom classeur ?

Bonsoir à tous.

Patrick, serait-il possible de montrer ton exemple qui donnerait une verion complémentaire à JC ?

Avec dans le ThisWorkbook:
VB:
Private Sub Workbook_Open()
If ThisWorkbook.Name = "Copyright © excel-downloads.com.xls" Then Exit Sub
Application.DisplayAlerts = False
    Sheets.Add
    Sheets("Une").Delete
    Sheets("Deux").Delete
    Application.DisplayAlerts = True
End Sub

En ouvrant le fichier : les feuilles "Une" et "Deux" sont disponibles.
Enregistrez-le sous un autre nom, ou modifiez son nom dans l'explorateur, et ouvrez-le : les feuilles "Une" et "Deux" ont été supprimées, et une feuille vide a été créée.
 

Pièces jointes

Re : Comment interdire changement du nom classeur ?

Bonsoir à tous,

et avec un petit MsgBox qui dirait : "Hé oui, ce fichier a été vidé de ses feuilles d'origine, la prochaine fois, tu respecteras le copyright en sauvegardant sous le même nom de fichier !"

😎
 
Re : Comment interdire changement du nom classeur ?

Bonsoir au Site, Forum et fil,

Merci(s) à vous tous des nouvelles solutions proposées.
Celà va éviter à mes colègues de modifier à leurs guises le titre de certains fichiers mis à dispos sur un serveur.

Que de solutions grace à vous : JC, Patrick Pierrot et Philippe.😛

L'idée de Philippe d'un petit MsgBox qui dirait : "Hé oui, ce fichier a été vidé de ses feuilles d'origine, la prochaine fois, tu respecteras le copyright en sauvegardant sous le même nom de fichier !" assemblée au propos données, me tente bien.😉

Bonne soirée. Merci(s).

CG2000
 

Pièces jointes

Dernière édition:
Re : Comment interdire changement du nom classeur ?

Bonsoir à tous,

Je viens de tester et ça le fait 😉
Par contre, vu que les feuilles sont effacées après seulement la lecture du MsgBox,
il faudrait tourner la phrase autrement, style :
Les 2 feuilles du fichier vont être effacées après lecture de ce message !
La prochaine fois, etc....

😎
 
- 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
4
Affichages
867
  • Question Question
Microsoft 365 Classeur Disparu
Réponses
2
Affichages
521
Retour