interdire la modification d'un nom de fichier

  • Initiateur de la discussion Marc
  • Date de début
M

Marc

Guest
Bonjour,

j'ai un formulaire avec suivi de donnée qui se déplace en pièce jointe de BAL en BAL pour récupèrer des données de plusieurs utilsateurs. Ce formulaire est créer à partir d'un modèle XLT et je souhaiterai automatiquement un nom " unique " ( plusieurs fichiers peuvent être crées dans une hjournée = compteur ) et surtout je souhaite qu'après le 1 er enregistrement le nom du fichier ne puisse pas être changer. Note : j'utilise pour la sauvegarde un Bouton dan sle fichier

Merci et à bientôt

@MD
 
P

padilla

Guest
Salut,
essaie ça :

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
' SaveAsUI est VRAI si on vient de Fichier / Enregistrer sous
' et FAUX si on vient de Fichier / Enregistrer
' si on met Cancel à VRAI, l'enregistrement n'a pas lieu
If SaveAsUI Then
MsgBox "Le changement de nom est interdit !", vbExclamation + vbOKOnly, "Attention"
Cancel = True
End If
End Sub

A plus.
 
B

Bernard

Guest
Marc, Padilla, @Thierry, toutes et tous bonjour,
Sans doute suis je vraiment nul, mais je n'ai pas été capable d'utiliser cette macro... la possibilité d'interdire la modification du nom d'un fichier à l'enregistrement est une question que je me posais depuis longtemps...
En effet, je travaille en reseau et j'ai une 20aine de fichiers que les utilisateurs remplissent dans le courant du mois et un fichier recapitulatif qui se met a jour au fur et à mesure et que je releve en fin de mois, mais bien évidemment si un utilisateur enregistre le fichier sous un autre nom apres l'avoir completer, mon fichier Recap ne peut pas tenir compte de ce fichier modifié... Alors, lorsque j'ai vu le titre de ce fil, je me suis senti Sauvé, mais malheureusement mes compétences semblent trop limitées pour mettre en oeuvre vos applications, malgré vos sympathiques explications. Est ce qu'il y a une solution..? ou dois je continuer à faire circuler une feuille de bureau en bureau et la chercher partout à la fin du mois..? Merci à tous
 
@

@+Thierry

Guest
Bonjour Bernard, les gens de ce fil et tout le Forum XLD

Je ne sais pas si tu pourras mettre en application ceci pour ton cas particulier, mais malgré tout je t'explique la méthode proposée par Padilla.

Avec ton classeur ouvert, tu vas dans VBE (éditeur visual basic)... Pour ce faire la combinaison de touches ALT + F11 t'y envoie directement.

Une fois là tu ouvre "L'Explorateur de Projets'... Pour ce faire la combinaison de touches CTRL + R t'y envoie directement.

Là tu cherches dans "l'arbre" VBAproject de ton classeur : "ThisWorkBook" et tu doubles-click dessus...

Un Private module vierge devrait s'ouvrir sur la droite de ton écran.

Ensuite tu colle ce code dedans :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
' SaveAsUI est VRAI si on vient de Fichier / Enregistrer sous
' et FAUX si on vient de Fichier / Enregistrer
' si on met Cancel à VRAI, l'enregistrement n'a pas lieu
If SaveAsUI = True Then
MsgBox "Le changement de nom est interdit !", vbExclamation + vbOKOnly, "Attention"
Cancel = True
End If
End Sub


A partir de là tu sauves ton fichier, mais tu n'auras plus le droit de faire Sauver Sous (donc pas de possibilité de changer de nom)... Ceci n'est valable que depuis le fichier ouvert dans Excel... Mais celà n'empêche pas de sauver le fichier fermé sous un autre nom depuis le Client mail ou l'explorateur de Windows..

Enfin si celà peut déjà t'aider...
Bonnes Paques
@+Thierry
 

Discussions similaires

Statistiques des forums

Discussions
314 651
Messages
2 111 549
Membres
111 199
dernier inscrit
mavoungou regis