Incrémenter date nom de fichier excel

Bobo -  
 Bobo -
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. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    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
  2. Bobo
     
    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
  3. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    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. Bobo
       
      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. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      L'avantage du format yyyy-mm-dd c'est que le classement alphanumérique correspond aux dates (dans l'explorateur par exemple).
      0
    3. Bobo
       
      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. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      « 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. Bobo
       
      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