Macro temps donné

Bonjour je souhaiterai lancer ma macro archine toutes les 4 heures.

Comment faire?

Merci

https://www.excel-pratique.com/~files/doc/archiver.xls

Bonsoir,

Deux solutions s'offrent à toi :

  • soit tu vas dans menu/outils/options et sous l'onglet "affichage" tu dois avoir une possibilité de définir à quel interval de temps tu souhaites enregistrer ton fichier.
  • utilise le code ci-après dans une macro et le lier à ton bouton :
Application.OnTime Now + TimeValue("00:04:00"), "Archiver" 

Amicalement

Dan

J'ai essayé mais cela ne fonctionne pas (via le vba)

En fait je voudrai que cette macro se lance toute seule toutes les 4 heures...

Merci

Ca fonctionne!

Mais comment faire pour archiver le classeur complet et non la feuille active?

re,

Je suppose que tu veux sauver ton classeur sus un autre nom et ce, dans le répertoire C:archivage.

Essaye cette macro :

Sub Archiver()
'Macro par Dan
Dim nomfichier As String, chemin As String
chemin = "C:\ARCHIVAGE\"
nomfichier = Format(Date, "dd-mm-yy") & "_" & Format(Time, "h-mm-ss")
With ActiveWorkbook
    .SaveAs Filename:=chemin & nomfichier
    .Close
End With
End Sub

Attention pas d'espace entre la date et l'heure. J'ai mis un "_" dans ta macro.

A te relire

Dan

cette macro me convient parfaitement sauf que mon fichier original se ferme je n'y est donc plus accès...

merci

Bonjour,

Dans la macro enlève le --> .close

Amicalement

Dan

Merci nad-dan mais quand je retire le close, après avoir lancé la macro je suis sur le fichier de sauvegarde et non sur mon fichier initial

Galère!

re,

Que je comprenne bien ce que tu veux faire.

Tu veux travailler sur un fichier original et le sauver toutes les 4 heures sous un autre nom ou autre chose ?

Par ailleurs la macro que tu as dans ton fichier n'est pas celle que je t'ai proposée ici.

A te lire

Dan

oui c'est bien cela j'ai fait un truc du genre, est ce bon?

Sub auto_open()

Application.OnTime Now + TimeValue("00:05:00"), "sauve"

Dim strDate As String

Dossier = "E:\Sauve ERCA1\" ' ici pour le dossier des sauvegardes

Count = Len(ActiveWorkbook.Name)

Nom = Left(ActiveWorkbook.Name, Count - 4)

strDate = Format(Date, "dd-mm-yy") & " " & Format(Time, "h-mm-ss")

ThisWorkbook.SaveCopyAs Filename:=Dossier & Nom & strDate & ".xls"

End Sub

merci

re,

Ben là tu vas avoir le même résultat à savoir que tu auras le fichier original fermé et la copie sauvegardée ouverte.

D'autre part, le nom Auto open ne devrait pas être utlisé. Il vaut mieux placer ta macro dans THISWORKBOOK comme ceci :

Private Sub Workbook_Open()
....ton code...
End Sub

sinon à essayer :

Private Sub Workbook_Open()
Application.OnTime Now + TimeValue("00:05:00"), "sauve"
Dim strDate As String,dossier as string, nom as string
ThisWorkbook.Sheets(Array("Feuil1", "Feuil2", "Feuil3")).Copy
 Dossier = "E:\Sauve ERCA1\" ' ici pour le dossier des sauvegardes
 Count = Len(ActiveWorkbook.Name)
 Nom = Left(ActiveWorkbook.Name, Count - 4)
 strDate = Format(Date, "dd-mm-yy") & " " & Format(Time, "h-mm-ss")
With ActiveWorkbook
    .SaveAs Filename:=Dossier & Nom & strDate & ".xls"
    .Close
End With
End Sub

Avec feuil1, feuil2, feuil3 à remplacer par le nom des feuilles de ton fichier.

Fais un essai puis dis moi.

Dan

Je te remercie beaucoup pour tes infos mais là je commence à être largué...

Je veux simplement sauvegarder mon classeur complet sous un autre nom tous les xx temps, à savoir que celui ci comporte une quarantaine de feuilles...

Sinon j'ai trouvé cette macro qui n'a pas l'air mal, elle sauvegarde tous les xxhxx + possibilité de mettre le nombre de sauvegardes avant écrasements!

https://www.excel-pratique.com/~files/doc/SauvegardeAutodans_C.xls

merci

Re,

Tu pars dans toutes les directions là.

Fais ceci :

Dans THISWORKBOOK en VBA tu mets cette macro :

Private Sub Workbook_Open() 
Application.OnTime Now + TimeValue("00:05:00"), "archiver"
End Sub

Dans un module en VBA

Sub Archiver()
 'Macro par Dan
 Dim nomfichier As String, chemin As String
 ThisWorkbook.Sheets.Copy
 chemin = "C:\ARCHIVAGE\"
 nomfichier = Format(Date, "dd-mm-yy") & "_" & Format(Time, "h-mm-ss") & ".xls"
 With ActiveWorkbook
    .SaveAs Filename:=chemin & nomfichier
   .Close
 End With
 End Sub

Amicalement

Dan

Bonsoir Vacoch, Dan et le forum,

Je tiens à préciser que tu avais déjà demandé de l'aide à ce sujet et que j'avais traité le problème de sauvegarde.

Voir le lien : https://www.excel-pratique.com/forum/viewtopic.php?t=2824&highlight=

Bonne soirée.

Re,

Merci Mathieu.

Je n'avais pas vu ce fil et je comprends maintenant le dernier fichier posté par Vacoch.

Espérons que cela conviendra.

A bientôt

Dan

j'ai déplacé le post...

Rechercher des sujets similaires à "macro temps donne"