[RESOLU] Comment interdire changement du nom classeur ?

CG2000

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

Comment interdire le changement du nom du classeur Excel ? :confused:

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

  • Copyright © excel-downloads.com.xls
    13.5 KB · Affichages: 85
  • Copyright © excel-downloads.com.xls
    13.5 KB · Affichages: 90
  • Copyright © excel-downloads.com.xls
    13.5 KB · Affichages: 90
Dernière édition:

Philippe68

XLDnaute Occasionnel
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:

JCGL

XLDnaute Barbatruc
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:

JCGL

XLDnaute Barbatruc
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
 

Victor21

XLDnaute Barbatruc
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.
 

Philippe68

XLDnaute Occasionnel
Re : Comment interdire changement du nom classeur ?

Re le forum, JC salut Patrick

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

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"
 

CG2000

XLDnaute Occasionnel
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
 

Victor21

XLDnaute Barbatruc
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

  • Copyright © excel-downloads.com.xls
    17 KB · Affichages: 82
  • Copyright © excel-downloads.com.xls
    17 KB · Affichages: 79
  • Copyright © excel-downloads.com.xls
    17 KB · Affichages: 84

Philippe68

XLDnaute Occasionnel
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 !"

:cool:
 

Victor21

XLDnaute Barbatruc
Re : Comment interdire changement du nom classeur ?

Bonjour à tous.

Pour faire suite à la remarque de Pierrot, et force l'activation des macros, pourquoi ne pas combiner avec :
 

Pièces jointes

  • ForceMacro.xls
    65.5 KB · Affichages: 119
  • ForceMacro.xls
    65.5 KB · Affichages: 110
  • ForceMacro.xls
    65.5 KB · Affichages: 116

CG2000

XLDnaute Occasionnel
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.:p

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

  • Copyright © excel-downloads.com.xls
    18.5 KB · Affichages: 122
  • Copyright © excel-downloads.com.xls
    18.5 KB · Affichages: 119
  • Copyright © excel-downloads.com.xls
    18.5 KB · Affichages: 125
Dernière édition:

Philippe68

XLDnaute Occasionnel
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....

:cool:
 

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 134
Membres
103 129
dernier inscrit
Atruc81500