Ajouter date à la fin d'un fichier

Bonjour à toutes et à tous,

Tout d'abord je vous souhaite de bonnes préparations pour les fêtes de fin d'année.

Voilà mon sujet , j'ai des macros vba excel pour ajouter une date dans un fichier qui fonctionnent très bien par contre quand je veux faire date plus 1 , date plus 2, date plus 3 etc etc je dois chaque fois faire une macro

est il possible d'enregistrer par exemple dans un fichier donné la feuille active en gardant le même nom plus la date pour par exemple 7 jours ou le mois en cours consécutifs(un fichier par jour) au format xlsm

et une autre macro du même type au format xlsx

je vous joins des macros qui foncionnent très bien , mais une macro par date !!!

Sub EnregistrerFeuilleActiveAvecDatePlus0()
    ' Calcule la date du jour
    Dim DatePlus0 As Date
    DatePlus0 = DateAdd("d", 0, Date)

    ' Obtient le nom du fichier actif
    Dim NomFichierActif As String
    NomFichierActif = ActiveWorkbook.Name

    ' Demande à l'utilisateur de spécifier l'emplacement et le nom du fichier
    Dim FichierSauvegarde As Variant
    FichierSauvegarde = Application.GetSaveAsFilename(NomFichierActif & "_" & Format(DatePlus1, "dd_mm_yyyy") & ".xlsm", "Fichiers Excel (*.xlsm), *.xlsm")

    ' Vérifie si l'utilisateur a annulé l'opération
    If FichierSauvegarde <> False Then
        ' Enregistre le fichier avec le nom spécifié
        ActiveWorkbook.SaveAs FichierSauvegarde
    End If
End Sub

Sub EnregistrerFeuilleActiveAvecDatePlus1()
    ' Calcule la date du lendemain
    Dim DatePlus1 As Date
    DatePlus1 = DateAdd("d", 1, Date)

    ' Obtient le nom du fichier actif
    Dim NomFichierActif As String
    NomFichierActif = ActiveWorkbook.Name

    ' Demande à l'utilisateur de spécifier l'emplacement et le nom du fichier
    Dim FichierSauvegarde As Variant
    FichierSauvegarde = Application.GetSaveAsFilename(NomFichierActif & "_" & Format(DatePlus1, "dd_mm_yyyy") & ".xlsm", "Fichiers Excel (*.xlsm), *.xlsm")

    ' Vérifie si l'utilisateur a annulé l'opération
    If FichierSauvegarde <> False Then
        ' Enregistre le fichier avec le nom spécifié
        ActiveWorkbook.SaveAs FichierSauvegarde
    End If
End Sub

Sub EnregistrerFeuilleActiveAvecDatePlus2()
    ' Calcule la date du surlendemain
    Dim DatePlus2 As Date
    DatePlus2 = DateAdd("d", 2, Date)

    ' Obtient le nom du fichier actif
    Dim NomFichierActif As String
    NomFichierActif = ActiveWorkbook.Name

    ' Demande à l'utilisateur de spécifier l'emplacement et le nom du fichier
    Dim FichierSauvegarde As Variant
    FichierSauvegarde = Application.GetSaveAsFilename(NomFichierActif & "_" & Format(DatePlus2, "dd_mm_yyyy") & ".xlsm", "Fichiers Excel (*.xlsm), *.xlsm")

    ' Vérifie si l'utilisateur a annulé l'opération
    If FichierSauvegarde <> False Then
        ' Enregistre le fichier avec le nom spécifié
        ActiveWorkbook.SaveAs FichierSauvegarde
    End If
End Sub

Sub EnregistrerFeuilleActiveAvecDatePlus3()
    ' Calcule la date plus 3
    Dim DatePlus3 As Date
    DatePlus3 = DateAdd("d", 3, Date)

    ' Obtient le nom du fichier actif
    Dim NomFichierActif As String
    NomFichierActif = ActiveWorkbook.Name

    ' Demande à l'utilisateur de spécifier l'emplacement et le nom du fichier
    Dim FichierSauvegarde As Variant
    FichierSauvegarde = Application.GetSaveAsFilename(NomFichierActif & "_" & Format(DatePlus3, "dd_mm_yyyy") & ".xlsm", "Fichiers Excel (*.xlsm), *.xlsm")

    ' Vérifie si l'utilisateur a annulé l'opération
    If FichierSauvegarde <> False Then
        ' Enregistre le fichier avec le nom spécifié
        ActiveWorkbook.SaveAs FichierSauvegarde
    End If
End Sub
Sub EnregistrerFeuilleActiveAvecDatePlus4()
    ' Calcule la date plus4
    Dim DatePlus4 As Date
    DatePlus4 = DateAdd("d", 4, Date)

    ' Obtient le nom du fichier actif
    Dim NomFichierActif As String
    NomFichierActif = ActiveWorkbook.Name

    ' Demande à l'utilisateur de spécifier l'emplacement et le nom du fichier
    Dim FichierSauvegarde As Variant
    FichierSauvegarde = Application.GetSaveAsFilename(NomFichierActif & "_" & Format(DatePlus4, "dd_mm_yyyy") & ".xlsm", "Fichiers Excel (*.xlsm), *.xlsm")

    ' Vérifie si l'utilisateur a annulé l'opération
    If FichierSauvegarde <> False Then
        ' Enregistre le fichier avec le nom spécifié
        ActiveWorkbook.SaveAs FichierSauvegarde
    End If
End Sub

en sachant que ces macros fontcionnent très bien

D'avance merçi à tout le monde et encore bravo pour votre forum

Jacques

Bonjour,

une des nombreuses solutions :

Sub EnregistrerFeuilleActiveAvecDatePlus()
    Dim DatePlus0 As Date, FichierSauvegarde As Variant, NomFichierActif As String, I
    DatePlus0 = DateAdd("d", 0, Date)
    NomFichierActif = ActiveWorkbook.Name
    For I = 1 To 7 ' ici pour sauvegarder 7 fichier avec un décalage d'1 à 7 jour par rapport à aujourd'hui
        FichierSauvegarde = NomFichierActif & "_" & Format(DateAdd("d", I, Date), "dd_mm_yyyy") & ".xlsm"
        ActiveWorkbook.SaveAs FichierSauvegarde
    Next I
End Sub

Je ne demande pas le dossier d'enregistrement, cela se met au même "niveau" que le fichier source.
c'est juste pour montrer le principe de la boucle.

@ bientôt

LouReeD

Merçi beaucoup

Ca fonctionne très bien

par contre si je veux changer le nom de destination du fichier, si je met le nom du fichier à la place du "fichier actif " ça ne fonctionne pas

comment faire

merçi en attendant j'essaye des solutions avec ta macro

Bonsoir,

en gardant la possibilité de choisir le dossier ainsi que le nom du fichier :

Sub EnregistrerFeuilleActiveAvecDatePlus()
    Dim FichierSauvegarde As Variant, NomFichierActif As String, I
    NomFichierActif = ActiveWorkbook.Name
    FichierSauvegarde = Application.GetSaveAsFilename(NomFichierActif, "Fichiers Excel (*.xlsm), *.xlsm")
    For I = 1 To 7 ' ici pour sauvegarder 7 fichier avec un décalage d'1 à 7 jour par rapport à aujourd'hui
        ActiveWorkbook.SaveCopyAs Left(FichierSauvegarde, Len(FichierSauvegarde) - 5) & "_" & Format(DateAdd("d", I, Date), "dd_mm_yyyy") & ".xlsm"
    Next I
End Sub

La gestion de l'extension n'est pas bonne mais elle fonctionne pour le .XlsM et .XlsX (soit sur 5 caractères...)

@ bientôt

LouReeD

Un Grand Merçi LouReed

merçi pour ton aide

Bonne Soirée

Jacques

Bonjour ,

Encore une fois je remerçie LouReed et tous ceux du forum qui m'ont aidé

un grand bravo

Jacques

Bonjour,

merci de votre retour et remerciement !
Mais comme je vous l'ai dit, le gestion du nom sans extension n'est pas top... Je pense qu'il y a mieux à coder... mais je ne suis pas très fort sur la gestion des fichiers par VBA... Mais je me débrouille !

Bonne fin de weekend à vous !

@ bientôt

LouReeD

Rechercher des sujets similaires à "ajouter date fin fichier"