Copie automatique d'un classeur à une heure precise

Bonjour à tous

j'ai un fichier excel qui est ouvert et il reçoit des données d'un automate

je voudrais savoir comment sauvegarder le fichier automatiquement dans un dossier nommé Sauvegarde sur le disque C et cela a 00h00 du matin précise et avec un nom différent chaque jours. Je souhaite que cela se fasse sans la presence de quelqu'un. C'est à dire s'il est minuit il fait une copie du fichier dans le dossier nommé Sauvegarde sur le disque C

Exemple:

Le fichier excel se nomme Mon fichier et je veux que la sauvegarde se nomme archive_date_du_jour (archive_06_03_2013)

Cordialement

112mon-fichier.xlsm (30.51 Ko)

Bonjour à tous,

J'ai essayé avec ce code

Private Sub Workbook_Open()
    Application.OnTime TimeValue("23:59:59"), "Enregistrer_Auto"
End Sub

puis dans un module j'ai mis ce code

Sub Enregistrer_Auto()
'répertoire du fichier en cours
cheminInitiale = "C:\Program Files\Automate\"
Source = ThisWorkbook.Name  'nom du fichier actuel
'répertoire pour la sauvegarde journalière
cheminCopie = "C:Sauvegarde"
'fichier enregistré sous le nom Données du ddmmaaaa.xls
Fichier = "_du_ " & Format(Date, "ddmmyyyy") & "_" & Format(Time, "hhmmss") & ".xlsm"
ActiveWorkbook.SaveAs cheminCopie & Fichier

End Sub

Le Hic est que quand il fini de copier le fichier original ouvert, il le ferme et il ouvre le fichier de sauvegarde.

Moi j'aurai souhaité qu'il fasse une copie du fichier original dans le disque C sans toute fois le fermé. Aussi je veux pas qu'il ouvre le fichier de sauvegarde.

113mon-fichier.xlsm (17.50 Ko)

Salut,

Avec le passage ci-dessous, tu crées la copie d'une feuille d'un fichier de base dans un nouveau fichier, tu enregistres ce nouveau fichier sous un nom quelconque (ici "aaa") et le referme. A ce moment-là, ton fichier de base est toujours ouvert à l'écran.

    Sheets("Feuil3").Copy
    ActiveWorkbook.SaveAs Filename:="C:\Users\aaa.xlsx"
    ActiveWorkbook.Close

Est-ce que la solution à ton problème passe par une configuration semblable ?

Cordialement.

Merci de m'avoir répondu,

Moi je veux copier tout le contenu du fichier de base dans le disque C et non une feuille du fichier.

Puisque dans le fichier de base il aura plusieurs feuilles.

Cordialement

Essaie en listant toutes les feuilles que tu veux duplifier, par exemple :

Sheets(Array("Feuil1", "Feuil2", "Feuil3")).Select

Amiclament.

Bonjour,

Au fait mon fichier de base fait des enregistrement du contenu d'un autre fichier après 21 minutes. Donc en 24 heures je me retrouves avec 72 feuilles dans le fichier de base.

Je veux savoir s' il est possible de faire la copie du fichier de base sans toute fois lister les feuilles.

Cordialement

Salut,

J’ai essayé tout plein de variations du code ci-dessous afin de créer automatiquement une liste de feuilles à copier dans ton nouveau fichier quel que soit le nombre de feuilles, mais ça bloque à chaque fois. C’est rageant, car dans la MsgBox, la chaîne nécessaire est bien visible, mais ça bloque sur la ligne suivante

Sub ss()
Dim i As Integer, Liste_feuilles As String

If Sheets.Count = 1 Then
    Liste_feuilles = Sheets(1).Name
Else
    Liste_feuilles = "''" & Sheets(1).Name & "''"

    For i = 2 To Sheets.Count - 1
        Liste_feuilles = Liste_feuilles & ", ''" & Sheets(i).Name
    Next

    Liste_feuilles = Liste_feuilles & "'', ''" & Sheets(Sheets.Count).Name & "''"
End If

MsgBox (Liste_feuilles)
Sheets(Array(Liste_feuilles)).Select
    ActiveWorkbook.SaveAs Filename:="C:\Users\aaa.xlsx"
    ActiveWorkbook.Close
End Sub

De mon côté, je crois que je suis arrivé au bout de mes possibilités.

Alors soit tu as beaucoup de chance et un autre membre pourra t’apporter la solution sur ce fil, soit – vu que peu de membres s’intéressent à un fil déjà bien entamé – tu indiques ce fil comme résolu et tu en recommences un autre, soit tu préfères que j’ouvre moi un fil afin de trouver l’aide nécessaire à t’aider.

Que décides-tu ?

Cordialement.

Bonjour

Juste une réflexion en passant

Si je comprends tu veux juste enregistrer une copie de ton fichier ?

Essayes SaveCopyAs

Option Explicit

Sub Enregistrer_Auto()
Dim CheminCopie As String, Fichier As String

  'répertoire pour la sauvegarde journalière
  CheminCopie = "C:sauvegarde"
  'fichier enregistré sous le nom Données du ddmmaaaa.xls
  Fichier = "_du_ " & Format(Date, "ddmmyyyy") & "_" & Format(Time, "hhmmss") & ".xlsm"
  ActiveWorkbook.SaveCopyAs CheminCopie & Fichier
  Application.OnTime TimeValue("23:59:59"), "Enregistrer_Auto"
End Sub

Merci à tous de m'avoir aidé

j'ai trouvé la solution avec le code posté par "Banzai64" c'est la destination du fichier qui était mal defini au lieu de mettre CheminCopie = "C:\Sauvegarde\" moi j'avais mis CheminCopie = "C:Sauvegarde" donc ça ne pouvais pas marché.

Private Sub Workbook_Open()
  Application.OnTime TimeValue("11:05:50"), "Enregistrer_Auto"
End Sub
Option Explicit

Sub Enregistrer_Auto()
Dim CheminCopie As String, Fichier As String
  'répertoire pour la sauvegarde journalière
 CheminCopie = "C:\Sauvegarde\"
  'fichier enregistré sous le nom Données du ddmmaaaa.xls
 Fichier = "Sauvegarde_du_ " & Format(Date, "ddmmyyyy") & "_" & Format(Time, "hhmmss") & ".xlsm"
  ActiveWorkbook.SaveCopyAs CheminCopie & Fichier

End Sub

ça marche parfaitement, merci et a+

Cordialement

Bonjour cher forum,

je déterre ce vieux poste...

Est-il possible de faire la même chose lorsque le classeur est fermé?

Merci

Rechercher des sujets similaires à "copie automatique classeur heure precise"