XL 2019 Empêcher d'enregistrer sous un fichier crée via macro

jui42

XLDnaute Junior
Bonjour,
J'ai une macro qui consiste à créer un fichier pour qu'un opérateur puisse y entrer des données , jusque là, tout est ok. La difficulté est la suivante :
mon programme, teste l'existence d'un fichier et donc l'ouvre le cas échéant. De ce fait, j'aimerais empecher à l'utilisateur de changer l'emplacement du fichier qui à été crée et qu'il puisse simplement enregistrer.
J'ai essayé d'implanter la méthode Workbook_BeforeSave dans le module de Code ThisWorkbook mais j'ai l'impression qu'elle est inactif.
Les fichier se crée via le classeur "fiche_op" le classeur "tableau_controle" est une bdd sur laquel le programme vien extraire les infos.

Si vous avez une idée je suis preneur ! Ou même si vous pouvez m'expliquez le fonctionnement de la procédure Workbook before save

Merci !! :)
 

Pièces jointes

  • fiche_op.xlsm
    63.5 KB · Affichages: 1
  • tableau_controle.xlsm
    31 KB · Affichages: 0

jui42

XLDnaute Junior
Bonjour jui42, Deadpool,



je ne donne pas de solution pour ça, mais juste ces quelques infos :

* si le nom du fichier créé via macro est déjà connu d'avance et fixe, par exemple "MonFichier.xlsm", il faut que le nom utilisé pour le SaveAs soit différent de "MonFichier.xlsm" (test simple à faire pour éviter ce nom de fichier).

* si le nom du fichier créé via macro est inconnu ou variable, c'est beaucoup moins évident ! peut-être que ça peut être résolu facilement de cette façon : la macro créé le fichier puis en tout dernier, elle lui mets l'attribut "Lecture seule" (attribut ReadOnly de l'ex-DOS ; cet attribut est toujours valable sous Windows, car il fait aussi partie du système de fichiers NTFS) ; dès lors, le SaveAs échouera sur ce fichier en Lecture seule : impossible de l'écraser ! mais alors, il faudra aussi mettre en place un code de "Gestion d'erreur" pour éviter un plantage brutal du code qui fait le SaveAs ! autrement dit : il faudra « récupérer l'erreur » afin de demander à l'utilisateur de saisir un autre nom de fichier pour effectuer le SaveAs.

(j'ai rien d'autre à proposer)

soan
Salut soan, en effet, le nom du fichier crée est variable car il porte la référence inscrite par l'utilisateur
 

soan

XLDnaute Barbatruc
Inactif
@jui42

merci pour ton info complémentaire ! :)

mais j'ai rien d'plus à noter que c'que j'ai déjà écrit dans mon post #15 ; donc en résumé pour le 2ème point : attribut Lecture seule + Gestion d'erreur ; peut-être qu'un autre contributeur aura une meilleure solution ? dans tous les cas, bonne chance ! 🍀

soan
 

Discussions similaires

Statistiques des forums

Discussions
315 094
Messages
2 116 143
Membres
112 669
dernier inscrit
Guigui2502