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 Suben 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 SubJe 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 SubLa 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
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