enregistrer le nom du fichier excel avec nouvelle date
5 réponses
didiersee
Bonjour =E0 tous j'ai trouv=E9 la macro suivante sur le forum (macro qui
enregistre le fichier en gardant le m=EAme nom mais en ajoutant la date
au d=E9but du nom)
Sub enregistr_auto_date()
Jr =3D Application.Text(Now(), "yymmdd")
'Jr =3D "020417"
FichierActif =3D ActiveWorkbook.Name
NouveauFichier =3D Jr & "-" & FichierActif
ActiveWorkbook.SaveAs NouveauFichier
MsgBox (NouveauFichier & " : Sauvegard=E9")
End Sub
=E7a fonctionne bien j'ai par exemple le nom du fichier
"291106-testdemacro.xls" =3D> les 6 premiers chiffres c'est la date du
jour =E0 l'enver, le probl=E8me est que si j'ex=E9cute =E0 nouveau cette
macro demain j'ai le r=E9sultat "301106-291106-testdemacro.xls" =3D> moi
je voudrai que l'ancienne date soit effac=E9e.
Comment faire?
Quelqu'un peut-il m'aider
Merci d'avance
Didier
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
lSteph
Bonjour,
Voici qui permet de lui garder son évolution propre tout en consignant une copie du jour mais en reprenant le même fichier, pas la copie datée. Ainsi cela sera automatique lors de la sauvegarde:
'''''*****dans le thisworkbook Private Sub Workbook_BeforeSave(ByVal _ SaveAsUI As Boolean, Cancel As Boolean)
With ThisWorkbook .SaveCopyAs Format(Now, "yymmdd") & "-" & .Name End With
End Sub '''''*****
A noter que dans l'exemple que tu as décrit: Si tu reprends 291106-testdemacro.xls au lieu de testdemacro.xls le résultat obtenu est bien normal.
L'intérêt de ce genre de macro est amha dans la plupart des cas, à partir d'un fichier de pouvoir en enregister une version propre à un jour donné sans perdre le fichier principal. Ce que tu demandais est tout à fait possible mais dans le but de garder ce type de macro valable pour n'importe quel fichier il me semblerait tortueux de vouloir aller triturer des noms de fichiers qui au demeurant peuvent très bien comporter des nombres et ce indépendament d'une date, ce qui en plus devra donc être vérifié. Donc par priorité repartir toujours du bon fichier me semble une meilleure hypothèse.
Cdlt.
lSteph
didiersee a pensé très fort :
Bonjour à tous j'ai trouvé la macro suivante sur le forum (macro qui enregistre le fichier en gardant le même nom mais en ajoutant la date au début du nom)
Sub enregistr_auto_date() Jr = Application.Text(Now(), "yymmdd") 'Jr = "020417"
FichierActif = ActiveWorkbook.Name NouveauFichier = Jr & "-" & FichierActif ActiveWorkbook.SaveAs NouveauFichier MsgBox (NouveauFichier & " : Sauvegardé") End Sub
ça fonctionne bien j'ai par exemple le nom du fichier "291106-testdemacro.xls" => les 6 premiers chiffres c'est la date du jour à l'enver, le problème est que si j'exécute à nouveau cette macro demain j'ai le résultat "301106-291106-testdemacro.xls" => moi je voudrai que l'ancienne date soit effacée. Comment faire? Quelqu'un peut-il m'aider Merci d'avance Didier
-- - -
Bonjour,
Voici qui permet de lui garder son évolution propre tout en consignant
une copie du jour mais en reprenant le même fichier, pas la copie
datée.
Ainsi cela sera automatique lors de la sauvegarde:
'''''*****dans le thisworkbook
Private Sub Workbook_BeforeSave(ByVal _
SaveAsUI As Boolean, Cancel As Boolean)
With ThisWorkbook
.SaveCopyAs Format(Now, "yymmdd") & "-" & .Name
End With
End Sub
'''''*****
A noter que dans l'exemple que tu as décrit:
Si tu reprends 291106-testdemacro.xls au lieu de testdemacro.xls
le résultat obtenu est bien normal.
L'intérêt de ce genre de macro est amha dans la plupart des cas, à
partir d'un fichier de pouvoir en enregister une version propre à un
jour donné sans perdre le fichier principal.
Ce que tu demandais est tout à fait possible mais dans le but de garder
ce type de macro valable pour n'importe quel fichier il me semblerait
tortueux de vouloir aller triturer des noms de fichiers qui au
demeurant peuvent très bien comporter des nombres et ce indépendament
d'une date, ce qui en plus devra donc être vérifié.
Donc par priorité repartir toujours du bon fichier me semble une
meilleure hypothèse.
Cdlt.
lSteph
didiersee a pensé très fort :
Bonjour à tous j'ai trouvé la macro suivante sur le forum (macro qui
enregistre le fichier en gardant le même nom mais en ajoutant la date
au début du nom)
Sub enregistr_auto_date()
Jr = Application.Text(Now(), "yymmdd")
'Jr = "020417"
FichierActif = ActiveWorkbook.Name
NouveauFichier = Jr & "-" & FichierActif
ActiveWorkbook.SaveAs NouveauFichier
MsgBox (NouveauFichier & " : Sauvegardé")
End Sub
ça fonctionne bien j'ai par exemple le nom du fichier
"291106-testdemacro.xls" => les 6 premiers chiffres c'est la date du
jour à l'enver, le problème est que si j'exécute à nouveau cette
macro demain j'ai le résultat "301106-291106-testdemacro.xls" => moi
je voudrai que l'ancienne date soit effacée.
Comment faire?
Quelqu'un peut-il m'aider
Merci d'avance
Didier
Voici qui permet de lui garder son évolution propre tout en consignant une copie du jour mais en reprenant le même fichier, pas la copie datée. Ainsi cela sera automatique lors de la sauvegarde:
'''''*****dans le thisworkbook Private Sub Workbook_BeforeSave(ByVal _ SaveAsUI As Boolean, Cancel As Boolean)
With ThisWorkbook .SaveCopyAs Format(Now, "yymmdd") & "-" & .Name End With
End Sub '''''*****
A noter que dans l'exemple que tu as décrit: Si tu reprends 291106-testdemacro.xls au lieu de testdemacro.xls le résultat obtenu est bien normal.
L'intérêt de ce genre de macro est amha dans la plupart des cas, à partir d'un fichier de pouvoir en enregister une version propre à un jour donné sans perdre le fichier principal. Ce que tu demandais est tout à fait possible mais dans le but de garder ce type de macro valable pour n'importe quel fichier il me semblerait tortueux de vouloir aller triturer des noms de fichiers qui au demeurant peuvent très bien comporter des nombres et ce indépendament d'une date, ce qui en plus devra donc être vérifié. Donc par priorité repartir toujours du bon fichier me semble une meilleure hypothèse.
Cdlt.
lSteph
didiersee a pensé très fort :
Bonjour à tous j'ai trouvé la macro suivante sur le forum (macro qui enregistre le fichier en gardant le même nom mais en ajoutant la date au début du nom)
Sub enregistr_auto_date() Jr = Application.Text(Now(), "yymmdd") 'Jr = "020417"
FichierActif = ActiveWorkbook.Name NouveauFichier = Jr & "-" & FichierActif ActiveWorkbook.SaveAs NouveauFichier MsgBox (NouveauFichier & " : Sauvegardé") End Sub
ça fonctionne bien j'ai par exemple le nom du fichier "291106-testdemacro.xls" => les 6 premiers chiffres c'est la date du jour à l'enver, le problème est que si j'exécute à nouveau cette macro demain j'ai le résultat "301106-291106-testdemacro.xls" => moi je voudrai que l'ancienne date soit effacée. Comment faire? Quelqu'un peut-il m'aider Merci d'avance Didier
-- - -
lSteph
...j'oubliais détail important:
la copie est écrasée tant qu'on a pas changé de jour!
donc comme on reste sur le bon fichier qui lui est enregistré juste après le beforesave si l'on doit refaire des modifs et qu'on enregistre à nouveau, ce sera ainsi la dernière version du jour... ...tant qu'on est le même jour donc attention au passage de minuit!
Cdlt.
lSteph
didiersee a émis l'idée suivante :
Bonjour à tous j'ai trouvé la macro suivante sur le forum (macro qui enregistre le fichier en gardant le même nom mais en ajoutant la date au début du nom)
Sub enregistr_auto_date() Jr = Application.Text(Now(), "yymmdd") 'Jr = "020417"
FichierActif = ActiveWorkbook.Name NouveauFichier = Jr & "-" & FichierActif ActiveWorkbook.SaveAs NouveauFichier MsgBox (NouveauFichier & " : Sauvegardé") End Sub
ça fonctionne bien j'ai par exemple le nom du fichier "291106-testdemacro.xls" => les 6 premiers chiffres c'est la date du jour à l'enver, le problème est que si j'exécute à nouveau cette macro demain j'ai le résultat "301106-291106-testdemacro.xls" => moi je voudrai que l'ancienne date soit effacée. Comment faire? Quelqu'un peut-il m'aider Merci d'avance Didier
-- - -
...j'oubliais détail important:
la copie est écrasée tant qu'on a pas changé de jour!
donc comme on reste sur le bon fichier qui lui est enregistré
juste après le beforesave si l'on doit refaire des modifs et qu'on
enregistre à nouveau, ce sera ainsi la dernière version du jour...
...tant qu'on est le même jour donc attention au passage de minuit!
Cdlt.
lSteph
didiersee a émis l'idée suivante :
Bonjour à tous j'ai trouvé la macro suivante sur le forum (macro qui
enregistre le fichier en gardant le même nom mais en ajoutant la date
au début du nom)
Sub enregistr_auto_date()
Jr = Application.Text(Now(), "yymmdd")
'Jr = "020417"
FichierActif = ActiveWorkbook.Name
NouveauFichier = Jr & "-" & FichierActif
ActiveWorkbook.SaveAs NouveauFichier
MsgBox (NouveauFichier & " : Sauvegardé")
End Sub
ça fonctionne bien j'ai par exemple le nom du fichier
"291106-testdemacro.xls" => les 6 premiers chiffres c'est la date du
jour à l'enver, le problème est que si j'exécute à nouveau cette
macro demain j'ai le résultat "301106-291106-testdemacro.xls" => moi
je voudrai que l'ancienne date soit effacée.
Comment faire?
Quelqu'un peut-il m'aider
Merci d'avance
Didier
la copie est écrasée tant qu'on a pas changé de jour!
donc comme on reste sur le bon fichier qui lui est enregistré juste après le beforesave si l'on doit refaire des modifs et qu'on enregistre à nouveau, ce sera ainsi la dernière version du jour... ...tant qu'on est le même jour donc attention au passage de minuit!
Cdlt.
lSteph
didiersee a émis l'idée suivante :
Bonjour à tous j'ai trouvé la macro suivante sur le forum (macro qui enregistre le fichier en gardant le même nom mais en ajoutant la date au début du nom)
Sub enregistr_auto_date() Jr = Application.Text(Now(), "yymmdd") 'Jr = "020417"
FichierActif = ActiveWorkbook.Name NouveauFichier = Jr & "-" & FichierActif ActiveWorkbook.SaveAs NouveauFichier MsgBox (NouveauFichier & " : Sauvegardé") End Sub
ça fonctionne bien j'ai par exemple le nom du fichier "291106-testdemacro.xls" => les 6 premiers chiffres c'est la date du jour à l'enver, le problème est que si j'exécute à nouveau cette macro demain j'ai le résultat "301106-291106-testdemacro.xls" => moi je voudrai que l'ancienne date soit effacée. Comment faire? Quelqu'un peut-il m'aider Merci d'avance Didier
-- - -
Fred
Bonjour, Il suffit de traiter la variable FichierActif en la tronquant des 7 premiers caractères. Ce qui peut se faire par exemple comme ceci :
FichierActif=mid(ActiveWorkbook.Name,8,999)
Bonne continuation
"didiersee" a écrit dans le message de news:
Bonjour à tous j'ai trouvé la macro suivante sur le forum (macro qui enregistre le fichier en gardant le même nom mais en ajoutant la date au début du nom)
Sub enregistr_auto_date() Jr = Application.Text(Now(), "yymmdd") 'Jr = "020417"
FichierActif = ActiveWorkbook.Name NouveauFichier = Jr & "-" & FichierActif ActiveWorkbook.SaveAs NouveauFichier MsgBox (NouveauFichier & " : Sauvegardé") End Sub
ça fonctionne bien j'ai par exemple le nom du fichier "291106-testdemacro.xls" => les 6 premiers chiffres c'est la date du jour à l'enver, le problème est que si j'exécute à nouveau cette macro demain j'ai le résultat "301106-291106-testdemacro.xls" => moi je voudrai que l'ancienne date soit effacée. Comment faire? Quelqu'un peut-il m'aider Merci d'avance Didier
Bonjour,
Il suffit de traiter la variable FichierActif en la tronquant des 7 premiers
caractères.
Ce qui peut se faire par exemple comme ceci :
FichierActif=mid(ActiveWorkbook.Name,8,999)
Bonne continuation
"didiersee" <didiersee@hotmail.com> a écrit dans le message de news:
1164867679.320016.143430@h54g2000cwb.googlegroups.com...
Bonjour à tous j'ai trouvé la macro suivante sur le forum (macro qui
enregistre le fichier en gardant le même nom mais en ajoutant la date
au début du nom)
Sub enregistr_auto_date()
Jr = Application.Text(Now(), "yymmdd")
'Jr = "020417"
FichierActif = ActiveWorkbook.Name
NouveauFichier = Jr & "-" & FichierActif
ActiveWorkbook.SaveAs NouveauFichier
MsgBox (NouveauFichier & " : Sauvegardé")
End Sub
ça fonctionne bien j'ai par exemple le nom du fichier
"291106-testdemacro.xls" => les 6 premiers chiffres c'est la date du
jour à l'enver, le problème est que si j'exécute à nouveau cette
macro demain j'ai le résultat "301106-291106-testdemacro.xls" => moi
je voudrai que l'ancienne date soit effacée.
Comment faire?
Quelqu'un peut-il m'aider
Merci d'avance
Didier
Bonjour, Il suffit de traiter la variable FichierActif en la tronquant des 7 premiers caractères. Ce qui peut se faire par exemple comme ceci :
FichierActif=mid(ActiveWorkbook.Name,8,999)
Bonne continuation
"didiersee" a écrit dans le message de news:
Bonjour à tous j'ai trouvé la macro suivante sur le forum (macro qui enregistre le fichier en gardant le même nom mais en ajoutant la date au début du nom)
Sub enregistr_auto_date() Jr = Application.Text(Now(), "yymmdd") 'Jr = "020417"
FichierActif = ActiveWorkbook.Name NouveauFichier = Jr & "-" & FichierActif ActiveWorkbook.SaveAs NouveauFichier MsgBox (NouveauFichier & " : Sauvegardé") End Sub
ça fonctionne bien j'ai par exemple le nom du fichier "291106-testdemacro.xls" => les 6 premiers chiffres c'est la date du jour à l'enver, le problème est que si j'exécute à nouveau cette macro demain j'ai le résultat "301106-291106-testdemacro.xls" => moi je voudrai que l'ancienne date soit effacée. Comment faire? Quelqu'un peut-il m'aider Merci d'avance Didier
lSteph
Bonjour, C'est précisément ce qui répondant basiquement à la demande me semble une bien mauvaise solution. En l'occurence appliquer directement ce que tu indiques à l'exemple testdemacro.xls Si l'on veut pouvoir procèder correctement , vérifier d'abord que le fichier traité commence bien par une date sinon donnerait un truc du genre 010107acro.xls
Savoir utiliser le bon fichier donc un seul fichier et prévoir le savecopyas en auto lors du save avec la date qui convient me paraît préférable. Ainsi avant ou après enregistrement le fichier s'appelle toujours testdemacro.xls et c'est celui-là qu'on réouvrira toujours sans avoir à chercher au milieu de toutes les copies quelle était la date de la dernière version.
Maintenant chacun voit midi à sa porte!
Cdlt.
lSteph
Bonjour, Il suffit de traiter la variable FichierActif en la tronquant des 7 premi ers caractères. Ce qui peut se faire par exemple comme ceci :
FichierActif=mid(ActiveWorkbook.Name,8,999)
Bonne continuation
"didiersee" a écrit dans le message de news:
Bonjour à tous j'ai trouvé la macro suivante sur le forum (macro qui enregistre le fichier en gardant le même nom mais en ajoutant la date au début du nom)
Sub enregistr_auto_date() Jr = Application.Text(Now(), "yymmdd") 'Jr = "020417"
FichierActif = ActiveWorkbook.Name NouveauFichier = Jr & "-" & FichierActif ActiveWorkbook.SaveAs NouveauFichier MsgBox (NouveauFichier & " : Sauvegardé") End Sub
ça fonctionne bien j'ai par exemple le nom du fichier "291106-testdemacro.xls" => les 6 premiers chiffres c'est la date du jour à l'enver, le problème est que si j'exécute à nouveau cette macro demain j'ai le résultat "301106-291106-testdemacro.xls" => moi je voudrai que l'ancienne date soit effacée. Comment faire? Quelqu'un peut-il m'aider Merci d'avance Didier
Bonjour,
C'est précisément ce qui répondant basiquement à la demande me
semble une bien mauvaise solution.
En l'occurence appliquer directement ce que tu indiques à l'exemple
testdemacro.xls
Si l'on veut pouvoir procèder correctement , vérifier d'abord que le
fichier traité commence bien par une date
sinon donnerait un truc du genre
010107acro.xls
Savoir utiliser le bon fichier donc un seul fichier et prévoir le
savecopyas en auto lors du save avec la date qui convient me paraît
préférable.
Ainsi avant ou après enregistrement le fichier s'appelle toujours
testdemacro.xls et c'est celui-là qu'on réouvrira toujours sans avoir
à chercher au milieu de toutes les copies quelle était la date de la
dernière version.
Maintenant chacun voit midi à sa porte!
Cdlt.
lSteph
Bonjour,
Il suffit de traiter la variable FichierActif en la tronquant des 7 premi ers
caractères.
Ce qui peut se faire par exemple comme ceci :
FichierActif=mid(ActiveWorkbook.Name,8,999)
Bonne continuation
"didiersee" <didiersee@hotmail.com> a écrit dans le message de news:
1164867679.320016.143430@h54g2000cwb.googlegroups.com...
Bonjour à tous j'ai trouvé la macro suivante sur le forum (macro qui
enregistre le fichier en gardant le même nom mais en ajoutant la date
au début du nom)
Sub enregistr_auto_date()
Jr = Application.Text(Now(), "yymmdd")
'Jr = "020417"
FichierActif = ActiveWorkbook.Name
NouveauFichier = Jr & "-" & FichierActif
ActiveWorkbook.SaveAs NouveauFichier
MsgBox (NouveauFichier & " : Sauvegardé")
End Sub
ça fonctionne bien j'ai par exemple le nom du fichier
"291106-testdemacro.xls" => les 6 premiers chiffres c'est la date du
jour à l'enver, le problème est que si j'exécute à nouveau cette
macro demain j'ai le résultat "301106-291106-testdemacro.xls" => moi
je voudrai que l'ancienne date soit effacée.
Comment faire?
Quelqu'un peut-il m'aider
Merci d'avance
Didier
Bonjour, C'est précisément ce qui répondant basiquement à la demande me semble une bien mauvaise solution. En l'occurence appliquer directement ce que tu indiques à l'exemple testdemacro.xls Si l'on veut pouvoir procèder correctement , vérifier d'abord que le fichier traité commence bien par une date sinon donnerait un truc du genre 010107acro.xls
Savoir utiliser le bon fichier donc un seul fichier et prévoir le savecopyas en auto lors du save avec la date qui convient me paraît préférable. Ainsi avant ou après enregistrement le fichier s'appelle toujours testdemacro.xls et c'est celui-là qu'on réouvrira toujours sans avoir à chercher au milieu de toutes les copies quelle était la date de la dernière version.
Maintenant chacun voit midi à sa porte!
Cdlt.
lSteph
Bonjour, Il suffit de traiter la variable FichierActif en la tronquant des 7 premi ers caractères. Ce qui peut se faire par exemple comme ceci :
FichierActif=mid(ActiveWorkbook.Name,8,999)
Bonne continuation
"didiersee" a écrit dans le message de news:
Bonjour à tous j'ai trouvé la macro suivante sur le forum (macro qui enregistre le fichier en gardant le même nom mais en ajoutant la date au début du nom)
Sub enregistr_auto_date() Jr = Application.Text(Now(), "yymmdd") 'Jr = "020417"
FichierActif = ActiveWorkbook.Name NouveauFichier = Jr & "-" & FichierActif ActiveWorkbook.SaveAs NouveauFichier MsgBox (NouveauFichier & " : Sauvegardé") End Sub
ça fonctionne bien j'ai par exemple le nom du fichier "291106-testdemacro.xls" => les 6 premiers chiffres c'est la date du jour à l'enver, le problème est que si j'exécute à nouveau cette macro demain j'ai le résultat "301106-291106-testdemacro.xls" => moi je voudrai que l'ancienne date soit effacée. Comment faire? Quelqu'un peut-il m'aider Merci d'avance Didier
didiersee
Merci lSteph et Fred .Vos solutions sont parfaites pour moi, dans certaines situations celle de lSteph est parfaite et dans d'autres celle de Fred est parfaite aussi tout dépend de l'usage, en tous cas merci encore à vous deux. Cordialement
Bonjour, C'est précisément ce qui répondant basiquement à la demande me semble une bien mauvaise solution. En l'occurence appliquer directement ce que tu indiques à l'exemple testdemacro.xls Si l'on veut pouvoir procèder correctement , vérifier d'abord que le fichier traité commence bien par une date sinon donnerait un truc du genre 010107acro.xls
Savoir utiliser le bon fichier donc un seul fichier et prévoir le savecopyas en auto lors du save avec la date qui convient me paraît préférable. Ainsi avant ou après enregistrement le fichier s'appelle toujours testdemacro.xls et c'est celui-là qu'on réouvrira toujours sans avoir à chercher au milieu de toutes les copies quelle était la date de la dernière version.
Maintenant chacun voit midi à sa porte!
Cdlt.
lSteph
Bonjour, Il suffit de traiter la variable FichierActif en la tronquant des 7 pre miers caractères. Ce qui peut se faire par exemple comme ceci :
FichierActif=mid(ActiveWorkbook.Name,8,999)
Bonne continuation
"didiersee" a écrit dans le message de news:
Bonjour à tous j'ai trouvé la macro suivante sur le forum (macro qui enregistre le fichier en gardant le même nom mais en ajoutant la date au début du nom)
Sub enregistr_auto_date() Jr = Application.Text(Now(), "yymmdd") 'Jr = "020417"
FichierActif = ActiveWorkbook.Name NouveauFichier = Jr & "-" & FichierActif ActiveWorkbook.SaveAs NouveauFichier MsgBox (NouveauFichier & " : Sauvegardé") End Sub
ça fonctionne bien j'ai par exemple le nom du fichier "291106-testdemacro.xls" => les 6 premiers chiffres c'est la date du jour à l'enver, le problème est que si j'exécute à nouveau cette macro demain j'ai le résultat "301106-291106-testdemacro.xls" => moi je voudrai que l'ancienne date soit effacée. Comment faire? Quelqu'un peut-il m'aider Merci d'avance Didier
Merci lSteph et Fred
.Vos solutions sont parfaites pour moi, dans certaines situations celle
de
lSteph est parfaite et dans d'autres celle de Fred est parfaite aussi
tout dépend de l'usage, en tous cas merci encore à vous deux.
Cordialement
Bonjour,
C'est précisément ce qui répondant basiquement à la demande me
semble une bien mauvaise solution.
En l'occurence appliquer directement ce que tu indiques à l'exemple
testdemacro.xls
Si l'on veut pouvoir procèder correctement , vérifier d'abord que le
fichier traité commence bien par une date
sinon donnerait un truc du genre
010107acro.xls
Savoir utiliser le bon fichier donc un seul fichier et prévoir le
savecopyas en auto lors du save avec la date qui convient me paraît
préférable.
Ainsi avant ou après enregistrement le fichier s'appelle toujours
testdemacro.xls et c'est celui-là qu'on réouvrira toujours sans avoir
à chercher au milieu de toutes les copies quelle était la date de la
dernière version.
Maintenant chacun voit midi à sa porte!
Cdlt.
lSteph
Bonjour,
Il suffit de traiter la variable FichierActif en la tronquant des 7 pre miers
caractères.
Ce qui peut se faire par exemple comme ceci :
FichierActif=mid(ActiveWorkbook.Name,8,999)
Bonne continuation
"didiersee" <didiersee@hotmail.com> a écrit dans le message de news:
1164867679.320016.143430@h54g2000cwb.googlegroups.com...
Bonjour à tous j'ai trouvé la macro suivante sur le forum (macro qui
enregistre le fichier en gardant le même nom mais en ajoutant la date
au début du nom)
Sub enregistr_auto_date()
Jr = Application.Text(Now(), "yymmdd")
'Jr = "020417"
FichierActif = ActiveWorkbook.Name
NouveauFichier = Jr & "-" & FichierActif
ActiveWorkbook.SaveAs NouveauFichier
MsgBox (NouveauFichier & " : Sauvegardé")
End Sub
ça fonctionne bien j'ai par exemple le nom du fichier
"291106-testdemacro.xls" => les 6 premiers chiffres c'est la date du
jour à l'enver, le problème est que si j'exécute à nouveau cette
macro demain j'ai le résultat "301106-291106-testdemacro.xls" => moi
je voudrai que l'ancienne date soit effacée.
Comment faire?
Quelqu'un peut-il m'aider
Merci d'avance
Didier
Merci lSteph et Fred .Vos solutions sont parfaites pour moi, dans certaines situations celle de lSteph est parfaite et dans d'autres celle de Fred est parfaite aussi tout dépend de l'usage, en tous cas merci encore à vous deux. Cordialement
Bonjour, C'est précisément ce qui répondant basiquement à la demande me semble une bien mauvaise solution. En l'occurence appliquer directement ce que tu indiques à l'exemple testdemacro.xls Si l'on veut pouvoir procèder correctement , vérifier d'abord que le fichier traité commence bien par une date sinon donnerait un truc du genre 010107acro.xls
Savoir utiliser le bon fichier donc un seul fichier et prévoir le savecopyas en auto lors du save avec la date qui convient me paraît préférable. Ainsi avant ou après enregistrement le fichier s'appelle toujours testdemacro.xls et c'est celui-là qu'on réouvrira toujours sans avoir à chercher au milieu de toutes les copies quelle était la date de la dernière version.
Maintenant chacun voit midi à sa porte!
Cdlt.
lSteph
Bonjour, Il suffit de traiter la variable FichierActif en la tronquant des 7 pre miers caractères. Ce qui peut se faire par exemple comme ceci :
FichierActif=mid(ActiveWorkbook.Name,8,999)
Bonne continuation
"didiersee" a écrit dans le message de news:
Bonjour à tous j'ai trouvé la macro suivante sur le forum (macro qui enregistre le fichier en gardant le même nom mais en ajoutant la date au début du nom)
Sub enregistr_auto_date() Jr = Application.Text(Now(), "yymmdd") 'Jr = "020417"
FichierActif = ActiveWorkbook.Name NouveauFichier = Jr & "-" & FichierActif ActiveWorkbook.SaveAs NouveauFichier MsgBox (NouveauFichier & " : Sauvegardé") End Sub
ça fonctionne bien j'ai par exemple le nom du fichier "291106-testdemacro.xls" => les 6 premiers chiffres c'est la date du jour à l'enver, le problème est que si j'exécute à nouveau cette macro demain j'ai le résultat "301106-291106-testdemacro.xls" => moi je voudrai que l'ancienne date soit effacée. Comment faire? Quelqu'un peut-il m'aider Merci d'avance Didier