Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Effacer ou détruire automatquement un fichier xls.

4 réponses
Avatar
Jean-Paul Brine
Bonjour,
Je souhaite supprimer automatiquement un fichier après une durée de vie
variable, à déterminer par moi, et éventuellement le prolonger avec un code
à introduire. Ceci afin de limiter une utilisation parasite de ce fichier.
J'avais trouvé une macro mais ne la retrouve pas. Peut-être s'est-elle
autodétruite?
Merci de votre aide;

JP

4 réponses

Avatar
FFO
Salut à toi

Dans le ThisWorkbook d'un document Excel tu peux mettre ces quelques
lignes de code :

Private Sub Workbook_Open()
If Sheets("Feuil1").Range("A1") = Date Then
Kill ("C:CheminFichier.xls")
End If
End Sub


La date doit être dans l'onglet Feuil1 en cellule A1

A l'ouverture de ce document si le jour correspond à la date de la
cellule A1 le fichier sera détruit
Si la date est anterieur ou posterieur rien ne se passe

Tu peux changer la ligne :

If Sheets("Feuil1").Range("A1") = Date Then

pour détruire le fichier si la date est atteinte ou dépassé ainsi :

If Sheets("Feuil1").Range("A1") <= Date Then

Actualises la ligne :

Kill ("C:CheminFichier.xls")

du chemin et nom de ton ficher

Tu peux changer la cellule A1 pour modifier la date de cette action
avant celle fatidique en cours dans cette cellule

Espérant que celà te convienne

Dis moi !!!!!!
Avatar
Jean-Paul Brine
Bonjour François,

C'est preque cela que je recherche mais le code ne s' exécute qu'à la date
dite (¡). Je voudras aussi que la destruction se produise après.
Je m'explique: si le fichier n'est pas ouvert le 11/11/09 (A1/11/2009),
la destruction doit se produite à l'ouverture suivante.
Autre question, est-il possible de ne pas détruire intégralement le fichier
et de n'effacer que les formules, codes et macros. En fait faire un
"copier-collage spécial-Valeurs et formats"?
Merci pour le (gros) coup de pouce.

JP


"FFO" a écrit dans le message de groupe de
discussion :

Salut à toi

Dans le ThisWorkbook d'un document Excel tu peux mettre ces quelques
lignes de code :

Private Sub Workbook_Open()
If Sheets("Feuil1").Range("A1") = Date Then
Kill ("C:CheminFichier.xls")
End If
End Sub


La date doit être dans l'onglet Feuil1 en cellule A1

A l'ouverture de ce document si le jour correspond à la date de la
cellule A1 le fichier sera détruit
Si la date est anterieur ou posterieur rien ne se passe

Tu peux changer la ligne :

If Sheets("Feuil1").Range("A1") = Date Then

pour détruire le fichier si la date est atteinte ou dépassé ainsi :

If Sheets("Feuil1").Range("A1") <= Date Then

Actualises la ligne :

Kill ("C:CheminFichier.xls")

du chemin et nom de ton ficher

Tu peux changer la cellule A1 pour modifier la date de cette action
avant celle fatidique en cours dans cette cellule

Espérant que celà te convienne

Dis moi !!!!!!


Avatar
FFO
Rebonjour à toi

C'est preque cela que je recherche mais le code ne s' exécute qu'à la date
dite (¡). Je voudras aussi que la destruction se produise après.



Si tu avais bien lu ma réponse tu aurais déjà la solution :

"Tu peux changer la ligne :

If Sheets("Feuil1").Range("A1") = Date Then

pour détruire le fichier si la date est atteinte ou dépassé ainsi :

If Sheets("Feuil1").Range("A1") <= Date Then"


Pour ne pas détruire intégralement le fichier et ne concerver que les
valeurs je te propose de le recréer avec ce code :

Private Sub Workbook_Open()
If Sheets("Feuil1").Range("A1") <= Date Then
Workbooks.Open ("C:CheminFichier.xls")
Classeur = Workbooks.Add.Name
For i = 1 To Workbooks("Fichier.xls").Sheets.Count
Plage = Workbooks("Fichier.xls").Sheets(i).Range("A1").SpecialCells
(xlCellTypeLastCell).Address
Workbooks(Classeur).Sheets.Add.Range("A1", Plage).Value = Workbooks
("Fichier.xls").Sheets(i).Range("A1", Plage).Value
Workbooks(Classeur).ActiveSheet.Name = Workbooks("Fichier.xls").Sheets
(i).Name
Next
Workbooks("Fichier.xls").Close
Kill ("C:CheminFichier.xls")
Workbooks(Classeur).SaveAs ("C:CheminFichier.xls")
Workbooks("Fichier.xls").Close
End If
End Sub

Celà devrait te convenir

Dis moi !!!!!!
Avatar
FFO
Rebonjour à toi

"C'est preque cela que je recherche mais le code ne s' exécute qu'à la
date
dite (¡). Je voudras aussi que la destruction se produise après."

Si tu avais bien lu ma réponse tu aurais la solution :

"Tu peux changer la ligne :

If Sheets("Feuil1").Range("A1") = Date Then

pour détruire le fichier si la date est atteinte ou dépassé ainsi :

If Sheets("Feuil1").Range("A1") <= Date Then"


Pour ne pas détruire l'intégralité du fichier et ne conserver que les
valeurs je te propose de le recréer avec ce code :

Private Sub Workbook_Open()
If Sheets("Feuil1").Range("A1") <= Date Then
Workbooks.Open ("C:CheminFichier.xls")
Classeur = Workbooks.Add.Name
For i = 1 To Workbooks("Fichier.xls").Sheets.Count
Plage = Workbooks("Fichier.xls").Sheets(i).Range("A1").SpecialCells
(xlCellTypeLastCell).Address
Workbooks(Classeur).Sheets.Add.Range("A1", Plage).Value = Workbooks
("Fichier.xls").Sheets(i).Range("A1", Plage).Value
Workbooks(Classeur).ActiveSheet.Name = Workbooks("Fichier.xls").Sheets
(i).Name
Next
Workbooks("Fichier.xls").Close
Kill ("C:CheminFichier.xls")
Workbooks(Classeur).SaveAs ("C:CheminFichier.xls")
Workbooks("Fichier.xls").Close
End If
End Sub

Celà devrait te convenir
Dis moi !!!!!!!