Modification automatique de l'heure dans le nom du fichier

Bonjour à tous.

Je cherche à modifier automatiquement le nom de mon classeur excel de façon automatique avec l'heure après chaque enregistrement.

J'ai utilisé le code VBA suivant:

J'imagine qu'il me manque 2-3 trucs, là avec ce code j'ai bien la date et l'heure qui s'affiche à la suite de mon_fichier mais cela n'est plus modifié après les prochains enregistrements. Une idée? Je suis pas douée avec tous ces trucs, dès que ça sort un peu de la base je suis vite perdue mais j'essaie de me mettre à jour. Merci beaucoup pour votre aide.

    Sub filesave()

    'Update 20141111

    ActiveWorkbook.SaveAs ("C:\Users\\Documents\mon_fichier " & Format(Now(), "DD-MMM-YYYY hh mm AMPM") & ".xlsm")

    End Sub

bonjour,

Cette macro renomme ton classeur en cours en y incluant la date et l'heure du moment et le sauve. Les modifications ne sont pas sauvegardées dans le fichier original.

Cette macro n'est pas exécutée automatiquement. Que souhaites-tu faire ?

- faire une copie (en indiquant la date et l'heure) à chaque sauvegarde du fichier original.

- créer une nouvelle copie (en indiquant la date et l'heure) et laisser le fichier original intact.

- autre chose ...

Coucou, Merci pour ta réponse, je commence à mieux comprendre.

J'ai un fichier nommé disons mon_fichier.xlsx

A chaque fois qu'une modification lui est apportée je souhaiterais qu'il soit automatiquement renommé en mon_fichier_date_du_jour.xlsx

Je ne veux pas de copie mais uniquement 1 seul fichier avec son nom (mon_fichier) suivi de la date (soit mon_fichier_date_du_jour.xlsx) sans autre copie.

Le fichier est protégé et je suis la seule avec une collègue à avoir les droits dessus, donc pas de risques de fausse manips. Le but est que les collègues puissent visualiser rapidement si le fichier a été mis à jour pour traiter les infos à l'intérieur.

bonjour,

une proposition :

code à mettre dans le module thisworkbook.

la macro sera activée à chaque sauvegarde via excel

attention cette macro supprime le fichier original (bien faire une sauvegarde avant), au moins pour les tests.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    mon_fichier = "mon_fichier" ' nom générique du fichier sans le chemin
    twbn = ThisWorkbook.FullName
    nf = Left(twbn, InStr(twbn, mon_fichier) + Len(mon_fichier) - 1) 'on enlève l'ancienne date et ce qui suit
    nf = nf & Format(Now(), " DD-MMM-YYYY hh mm AMPM") & ".xlsm" ' nouveau nom
    Application.EnableEvents = False
    ThisWorkbook.SaveAs nf 'sauvegarde avec le nouveau nom dans le même répertoire
    Kill twbn 'supprimer le fichier original
    Application.EnableEvents = True
    Cancel = True
End Sub

Coucou,

Ah super, ça fonctionne parfaitement, trop fort.e. Merci beaucoup

Juste une question, ça fonctionne très bien sur mon dossier local mais sur le réseau partagé j'ai un message d'erreur qui cible la première ligne. Est-ce que le "Private" a à voir là dedans? Sachant que mon fichier est protégé en écriture sur certaines cellules.

Merci merci, je suis impressionnée en tout cas de voir ce que vous savez faire.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

re-bonjour,

le private n'a rien à voir. Quel est le message d'erreur précis ?

Rechercher des sujets similaires à "modification automatique heure nom fichier"