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;
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 !!!!!!
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
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 !!!!!!
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 !!!!!!
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" <francois.forcet@wanadoo.fr> a écrit dans le message de groupe de
discussion :
f8a79a2b-2805-41a0-b586-2fce6a0e726e@j4g2000yqe.googlegroups.com...
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
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 !!!!!!
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 !!!!!!
Rebonjour à toi
C'est preque cela que je recherche mais le code ne s' exécute qu'à la date
dite (=A1). 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
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 !!!!!!
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 !!!!!!!
Rebonjour à toi
"C'est preque cela que je recherche mais le code ne s' exécute qu'à la
date
dite (=A1). 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
"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