Regénérer une feuille effacée par inadvertance

Bonjour à toutes et à tous,

Impossible de retrouver le fichier dans lequel une procédure existait afin de regénérer une feuille dont le contenu aurait été effacé involontairement. Merci de me proposer une macro qui permettrait de remédier à cet inconvénient.

Bonnes journée et continuation à toutes et à tous. Prenez bien soin de vous.

5comptabilite.xlsm (238.62 Ko)

Bonjour,

Vu la quantité de feuilles et de tableaux à sauvegarder en cas de mauvaises manip, c'est de la folie de vouloir passer par une macro?

Le plus simple est que, lorsque votre fichier est ouvert, vous l'enregistriez sous son nom habituel, puis faire un "Enregistrer sous" Nom du fichier & "_" & Date du jour,

Par exemple; Enregistrer sous: Comptabilité_20250807, (mettre la date sous la forme AAAAMMJJ)

En procédant ainsi, vous aurez toujours les fichiers sauvegardés aux différentes dates, vous pourrez par exemple, ne conservez que les 10 dernières modifications et effacez les plus anciennes.

Lorsque vous voudrez travaillez sur votre fichier, n'ouvrez que celui qui comporte le nom habituel, pas ceux avec la date, puisque ces derniers sont des sauvegardes.

Je fais de nombreuses sauvegardes sous : en xltm (avec mot de passe), en xlsm (sans mot de passe) sur mon ordinateur, puis sur un disque dur externe avec les mêmes extensions et avec ou sans mot de passe.

Vous pouvez assurer en utilisant le code ci-dessous. A la fermeture du fichier, il sauvegardera automatiquement le classeur avec le nom du fichier suivi du groupe date-heure, même si, par erreur, vous ne sauvegardez pas votre fichier de travail.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim chemin As String, fichier As String

    Application.DisplayAlerts = False
    chemin = ThisWorkbook.Path & "\"
    fichier = Split(ThisWorkbook.Name, ".")(0) _
    & Format(Date, "yyyymmdd") _
    & Format(Time, "hhmm") _
    & "." & Split(ThisWorkbook.Name, ".")(1)
    ThisWorkbook.SaveCopyAs chemin & fichier
End Sub

Bonjour Optimix,

Je fais de nombreuses sauvegardes en xltm et en xlsm tant sur mon disque dur principal de mon ordinateur (C) que sur un disque dur externe.

Contrairement à ce que pense Arturo83, il ne s'agit pas de plusieurs feuilles concernées mais d'une unique feuille (BD menus)/ D'ailleurs, je croix me souvenir que c'est lui qui avait proposé cette régénération. Hélas, il semblerait que je n'ai pas imprimé cette macro et que le fichier concerné ait été supprimé par moi car j'ai fait du ménage sur mes disques durs C et D.

Bonjour à tous,

@BUDGETS, une fois supprimé, on ne peut pas récupérer un code VBA. La solution c'est de garder une copie (cachée) des feuilles potentiellement supprimables [avec leur code] et de la dupliquer lors d'un ajout. On n'y touche jamais en écriture.

Mais bon cela permet simplement de préserver le code VBA et la mise en page de la feuille en question. On ne peut pas revenir en arrière une fois les données supprimées.

Interrogez-vous plutôt sur votre mode de fonctionnement : avez-vous besoin de supprimer une feuille ? Celle-ci a-t-elle besoin de contenir du code VBA ?

Pour info il existe des évènements Workbook pour la plupart des évènements de Worksheet. Peut-être qu'il serait malin d'y déplacer votre code.

cf. Cours VBA : les événements Workbook

Si tu as fait le ménage au trichlo et écrasé de ce fait le fichier contenant la macro en question, c'est cuit. Si ce n'est pas le cas, il est peut-être encore dans ta poubelle, mais il te faudra beaucoup de chance. La solution que j'ai proposée ne concerne pas le passé, mais l'avenir.
Bon courage.

Rechercher des sujets similaires à "regenerer feuille effacee inadvertance"