Incrémenter date nom de fichier excel

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.

3 réponses

  1. 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
    1. 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
      1. 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
        1. 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
        2. L'avantage du format yyyy-mm-dd c'est que le classement alphanumérique correspond aux dates (dans l'explorateur par exemple).
          0
        3. 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
        4. « 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
        5. 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