Incrémenter date nom de fichier excel

Fermé
Bobo - 18 nov. 2011 à 09:57
 Bobo - 18 nov. 2011 à 16:09
Bonjour,

Je souhaiterais trouver une macro pour pouvoir, à chaque enregistrement de mon fichier Excel, mettre la date du jour à la suite du nom de mon fichier. Cependant, je ne souhaite qu'un date à la fin du fichier, et non que les dates se rajoutent au fur et à mesure (je préfère préciser)

Merci d'avance pour toutes vos réponses.
A voir également:

3 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
18 nov. 2011 à 11:11
Avec un nom de fichier du type NomDuFichier 2011-11-18.xls (ou .xlsm)
Essaies ce code :
Sub XXX()
Dim Nom_Fichier As String          'Nom du fichier
Dim Extension As String            'Extension du fichier

  'Ancien nom
  Nom_Fichier = ThisWorkbook.Name
  Extension = Mid(Nom_Fichier, InStrRev(Nom_Fichier, "."))
  Nom_Fichier = Left(Nom_Fichier, InStrRev(Nom_Fichier, " "))
  'Nouveau nom
  Nom_Fichier = Nom_Fichier & Format(Date, "yyyy-mm-dd") & Extension
  On Error GoTo ErrorHandler
  ActiveWorkbook.SaveAs Filename:=Nom_Fichier
  On Error GoTo 0

Exit Sub

ErrorHandler:          'Routine de gestion d'erreur.
Select Case Err.Number
  Case 1004
    'Le fichier est déjà ouvert ou l'enregistrement à été annulé
    If Err.Description = "La méthode 'SaveAs' de l'objet '_Workbook' a échoué" Then
      Resume Next
    Else
      MsgBox "L'enregistrement à échoué :" & vbCr & vbCr & Err.Description, vbInformation
      Resume Next
    End If
  Case Else
    MsgBox Err.Description, vbCritical
    Stop
    Resume Next
End Select

End Sub
2
Merci pour votre réponse.

Effectivement, cela fonctionne. Sauf que j'aimerais que la macro se lance seule lorsque j'enregistre mon fichier et non que j'ai besoin de la lancer pour qu'elle enregistre mon fichier.
Désolé, je débute dans les macros.
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
18 nov. 2011 à 13:17
Bonjour,

C'est pas tout à fait pareil.
Clic droit sur l'onglet de la feuille / Visualiser le code
Crtl+R pour afficher l'Explorateur de projet
Double clic sur ThisWorkbook
Copier/coller le code ci-dessous:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim Nom_Fichier As String          'Nom du fichier
Dim Extension As String            'Extension du fichier

  'Ancien nom
  Nom_Fichier = ThisWorkbook.FullName
  Extension = Mid(Nom_Fichier, InStrRev(Nom_Fichier, "."))
  Nom_Fichier = Left(Nom_Fichier, InStrRev(Nom_Fichier, " "))
  'Nouveau nom
  Nom_Fichier = Nom_Fichier & Format(Date, "yyyy-mm-dd") & Extension
  'Enregistrer une copie
  ThisWorkbook.SaveCopyAs Nom_Fichier
  'Ouvrir la copie
  Workbooks.Open Nom_Fichier
  'Ne pas enregistrer l'original
  Cancel = True
  'Fermer l'original sans l'enregistrer
  ThisWorkbook.Saved = True
  ThisWorkbook.Close
 
End Sub
0
Merci beaucoup, ça fonctionne impeccable !!!!
juste un détail, j'ai changé le format de la date en dd-mm-yyyy, juste par habitude ! ^^

Merci encore.
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
18 nov. 2011 à 14:17
L'avantage du format yyyy-mm-dd c'est que le classement alphanumérique correspond aux dates (dans l'explorateur par exemple).
0
Effectivement, je n'avais pas pensé à cela. Néanmoins, je ne souhaite pas conserver les anciens fichiers dans le même dossier. soit je les déplace dans un dossier d'archivage, soit je les supprime. Et dans ce cas là, je ne pense pas que les macros puisse faire qqch pour moi!
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
Modifié par Patrice33740 le 18/11/2011 à 15:18
« je ne pense pas que les macros puisse faire qqch pour moi »
Détrompes-toi, avec des macros on peut faire beaucoup de choses !
Mais il ne faut pas abuser des macros lorsqu'on ne maitrise pas le sujet.
0
Effectivement, je suis d'accord. Mais, je souhaite quand même en savoir davantage sur les macros pour en utiliser uniquement quand le besoin s'en fait réellement sentir.
Par contre, serait -il possible de remplacer l'ancien fichier, par le nouveau avec la nouvelle date à chaque fois?

Merci encore pour votre réponse.
0