Pousser un classeur au suicide ??

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

P

Philippe

Guest
Bonjour à tous,

je suis à la recherche d'une méthode permettant de demander à un classeur de s'auto-effacer, alors qu'il est encore ouvert bien entendu afin que la commande qu'il contient puisse s'executer.
En clair peut on pousser un classeur au suicide ???

Merci à ceux que ma demande inspirera (et aux autre qui liront ce post...=
 
Bonsoir à Tous, et Toutes (enfin Toute sans S)

Je vois que vous vous êtes bien amusé en tout cas sur ce Fil, moi en lisant le post de Philippe de 17:30, j'ai pensé à ceci :

Sub SaveAsNewDestroyOLd()
Dim TheNewFile As String
Dim TheOldFile As String

With ThisWorkbook
TheNewFile = .Path & "\" & ActiveSheet.Range("A1") & ".xls"
TheOldFile = .FullName
.SaveAs TheNewFile
End With

Kill TheOldFile
End Sub

On sauve le Fichier avec le nom voulu (en A1), et on détruit l'ancien. Avec la méthode "SaveAs" on a plus le souci du fichier ouvert pour le Kill...

Mais sinon merci Léa pour le "ChangeFileAccess" que je n'avais pas encore utilisé... Et qui me donne des idées non pas pour "suicider" mes interfaces, mais pour les protéger en cas de manips foireuses de mes charmants Users... Quant à Magic Ti, boum !!! ça c'est vraiment pour les méchants Users !! LOL

Bon aller Excellent Week End à Tous et Toutes
@+Thierry
 
Bonsoir à tous,

Je répète que je n'ai aucun mérite car justement moi non plus je ne connaissais pas le "ChangeFileAccess". C'était justement là que je butais et c'est en fouinant sur le Net que j'ai trouvé cette solution
Maintenant en ce qui concerne la réduction du code, Ti, en étant parti sur la solution qui consistait à faire une sauvegarde transitoire, et du fait de ne pas avoir supprimer ces quelques lignes, je n'ai pas pensé au fait que je "duplicais" ainsi la méthode

Comme quoi nous sommes tous bons et tous ensemble on fera de bonnes choses

léa
 
Salut tout le monde,

Effectivement ce post attire l'attention,

J'ai moi meme une idée qui me trotte dans la tete depuis un petit moment a ce sujet la, mais encore plus tordu que toi philippe !!!
J'envisage la meme chose, mais en détruisant aussi d'autre fichier excel qui ne serait pas encore ouvert, mais qui ferais parti du meme projet.

Sachant que de base un processus ne peut se detruire si il est actif, j'avais envisagé d'utilisé un code tiers, qui aurais été généré par excel, en créant un fichier dans un des repertoires systeme totalement anodin en apparence et en sommeil et ce au premier lancement d'un des classeurs concernés. (chaques classeurs aurait le meme code interne)

Par la suite les differents classeur a leur lancement verifieraient la presence du dis fichier, sinon il le recrée automatiquement.

En cas de lancement de la procedure de sabordement, cette derniere ouvrirait tout les classeurs concerné et les rendrait vierges de tout contenue avant de les enregistré a nouveau, puis lancement du programme tiers, qui demarre par une tempo (10s environs) laissant le classeur déclencheur s'auto-fermé (apres enregistrement de cellules vides)

Tous les classeurs etant fermés le programme tiers effectue l'effacement des fichiers. FIN DES CLASSEURS !!!!

Le but d'enregistré les classeurs avec des cellules vides avant effacement, evite de pouvoir recuperer des données confidentiels avec un logiciel comme easy recovery par exemple qui peux meme recuperer des données sur un disque apres formatage (j'ai testé et récupere l'intégralité d'une partition de 10Go avec ce logiciel).

Donc idée effectivement a développé, mais pas forcement en n'utilisant que notre excellent EXCEL !!!

Bien à vous, et bon WK

Manu70
 
Bonsoir à tous

Donc en résumé si j'ai bien tout compris, le seul fait de mettre le classeur en lecture seule "désactive" l'interdiction de "killer" un dossier ouvert.

Encore une fois un GROS GROS merci à tous, je sens que je vais me sentir bien ici, et surtout que je vais progresser.

Bon WE à tous !!!
 
Bonjour, c'est encore moi, alors après étude de vos différentes solutions et quelques test, j'ai pondu ceci, qui résoud parfaitement mon problème d'enregistrement de classeur sous un nouveau nom AVANT sa propre fermeture:

Sub renommer()
Application.DisplayAlerts = False
nom = Range("A1").Value & ".xls" ' on admet dans cet exemple que le nom de sauvagarde est stocké en A1
ActiveWorkbook.ChangeFileAccess xlReadOnly 'UN GRAND MERCI A LEA
Name (ActiveWorkbook.Name) As nom
ActiveWorkbook.Close savechanges:=True
End Sub

Cette macro fonctionne que le nom soit modifié ou nom en A1, ce qui permet de s'affranchir de la routine de détection de changement de nom, ça allège le code. Si cette méthode (fruit d'une véritable réflexion collègiale)peut être utile à quelqu'un,...,un jour...

Bon dimanche à tous.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour