Microsoft 365 Variabiliser le nom d'un fichier créé/enregistré chaque jour selon la date

MOA_Excel

XLDnaute Nouveau
Bonjour !

Tout d'abord je vous remercie de l'intérêt porté à cette demande.

Niveau = Je me débrouille sur Excel mais mes compétences s'arrêtent dès lors qu'il faut toucher à VBA. Je me limite à des enregistrements lorsque je dois utiliser une macro. Raison pour laquelle je me permets de solliciter votre aide.

Contexte = j'ai enregistré une macro afin de procéder aux actions suivantes :

1 - J'ouvre un fichier maître dans lequel j'ai traité des infos qui sont prêtes à être importées dans un outil (mapping)

2 - Je me place sur l'onglet dans lequel se trouvent les infos traitées

3 - J'ouvre un nouveau fichier et j'enregistre celui-ci en le nommant via un copié/collé que je fais d'une cellule à partir du fichier maître (je reprends la date du jour + la date de la réservation des commandes à effectuer, le tout en format texte)

4 - Je copie/colle les données depuis l'onglet du fichier maître vers le nouveau fichier ouvert en valeur puis je les convertis en format texte

Problématique = Tout fonctionne à un détail prêt qui fait tout foirer : l'enregistrement de macro fige le nom que je colle au nouveau fichier. Exemple : si nous sommes le 04/08/21 et que je réserve pour le 05/08/21, j'ai un libellé du nouveau fichier qui va être "Resa du 04-08-21 pour le 05-08-21". Le jour suivant, alors même que la cellule du fichier maître concernée affiche "Resa du 05-08-21 pour le 06-08-21" et que la macro copie/colle pour nommer le nouveau fichier créé chaque jour, le nouveau fichier va toujours s'appeler "Resa du 04-08-21 pour le 05-08-21".

La question est donc : comment rendre variable le nom que je donne au nouveau fichier créé et enregistré chaque jour selon la cellule prévue à cet effet dans le fichier maître ?

Données = Afin de faciliter l'appréhension du sujet, je vous propose ci-joint le code qui s'est créé automatiquement lors de l'enregistrement (j'ai modifié les libellés professionnels par sécurité) et qui fait apparaître le nom à attribuer au nouveau fichier de façon figée et non en tant que variable selon le copié/collé présent dans l'enregistrement à partir de la cellule qui s'actualise quotidiennement.

Screen macro.JPG


Egalement, je vous propose ci-dessous le copié/collé du code :

Sub GENERER_FICHIER_IMPORT()

'

' GENERER_FICHIER_IMPORT Macro

'

'

Sheets("Référentiel").Select

Range("X29").Select

Selection.Copy

Workbooks.Add

Application.CutCopyMode = False

ChDir "\\CHEMIN DU FICHIER DANS LE SERVEUR"

ActiveWorkbook.SaveAs Filename:= _

"\\CHEMIN DU FICHIER DANS LE SERVEUR\Resa du mercredi-04-08-2021 pour le jeudi-05-08-2021.xlsx" _

, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

Windows("ETL_Proto_Sud_Client1_V8.xlsm").Activate

Sheets("Résa pour le SUD").Select

Cells.Select

Selection.Copy

Windows("Resa du mercredi-04-08-2021 pour le jeudi-05-08-2021.xlsx").Activate

Cells.Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Application.CutCopyMode = False

ActiveWorkbook.Save

ActiveWindow.Close

Range("B4").Select

End Sub

Je vous remercie par avance de votre retour. Si vous avez besoin de précisions, je me tiens disponible pour y répondre.

Excellente journée

Bien cordialement
 
Solution
Re
un truc comme ca !
Non tester , à adapter
VB:
Sub GENERER_NOUVEAU_FICHIER()
' GENERER_NOUVEAU_FICHIER Macro
Dim StrDate$
    With Sheets("Feuil1")
    .Select
     StrDate = Trim(.Cells(8, 3))
    End With
    Selection.Copy
    Workbooks.Add
    Application.CutCopyMode = False
    ChDir "C:\Users\j.manzanares\Desktop"
    ActiveWorkbook.SaveAs Filename:= _
        "C:\Users\j.manzanares\Desktop\" & StrDate & ".xlsx" _
        , FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    Windows("TEST.xlsm").Activate
    Sheets("Feuil2").Select
    Cells.Select
    Selection.Copy
    Windows(StrDate & ".xlsx").Activate
    Cells.Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False...

MOA_Excel

XLDnaute Nouveau
Bonjour
peut être avec un truc comme ceci lors de l'enregistrement !
pas sur d'avoir Compris sans fichier !
Code:
.........SERVEUR\Resa du  " & Format(Date,"dddd dd-mm-yyyy")
jean marie
Bonjour,
Merci de votre réponse et réactivité
Pour apporter davantage de clarté à ma demande, ci-joint 2 fichiers :

- Fichier maître
- Fichier créé automatiquement via la macro enregistrée

J'ai mis des données bidons mais j'ai fait le même enregistrement que dans le fichier pro
Merci par avance de votre aide
Bien cordialement
JA
 

Pièces jointes

  • TEST.xlsm
    15 KB · Affichages: 7
  • Resa du mercredi-04-08-2021 pour le jeudi-05-08-2021.xlsx
    9 KB · Affichages: 5

MOA_Excel

XLDnaute Nouveau
Bonjour,
Merci de votre réponse et réactivité
Pour apporter davantage de clarté à ma demande, ci-joint 2 fichiers :

- Fichier maître
- Fichier créé automatiquement via la macro enregistrée

J'ai mis des données bidons mais j'ai fait le même enregistrement que dans le fichier pro
Merci par avance de votre aide
Bien cordialement
JA
Pour être encore plus précis, dans l'enregistrement de macro, je copie la cellule C8 de Feuil1 pour l'utiliser comme nom du nouveau fichier créé automatiquement.
Le problème réside dans le fait que le copié/collé ne s'actualise pas en fonction de ce qui est présent dans la cellule C8. Or, je souhaiterais que si la cellule C8 change, le nouveau copié/collé que je fais pour nommer le fichier créé chaque jour soit actualisé également. Mais quand le jour suivant je fais la macro, le même libellé est gardé et vient écrasé le fichier de la veille

Merci de votre aide
Bien cordialement
JA
 

ChTi160

XLDnaute Barbatruc
Re
un truc comme ca !
Non tester , à adapter
VB:
Sub GENERER_NOUVEAU_FICHIER()
' GENERER_NOUVEAU_FICHIER Macro
Dim StrDate$
    With Sheets("Feuil1")
    .Select
     StrDate = Trim(.Cells(8, 3))
    End With
    Selection.Copy
    Workbooks.Add
    Application.CutCopyMode = False
    ChDir "C:\Users\j.manzanares\Desktop"
    ActiveWorkbook.SaveAs Filename:= _
        "C:\Users\j.manzanares\Desktop\" & StrDate & ".xlsx" _
        , FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    Windows("TEST.xlsm").Activate
    Sheets("Feuil2").Select
    Cells.Select
    Selection.Copy
    Windows(StrDate & ".xlsx").Activate
    Cells.Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    ActiveWorkbook.Save
    ActiveWindow.Close
    Range("E7").Select
End Sub
jean marie
 

MOA_Excel

XLDnaute Nouveau
Bonjour,

Merci pour le temps que vous avez consacré pour m'aider
J'ai retravaillé votre proposition et l'ai croisée avec une autre réponse. Cela fonctionne

Ci-dessous le code (en modifiant les chemins pros), si cela peut vous intéresser :

Sub GENERER_NOUVEAU_FICHIER_IMPORT_CONFIDENTIEL()
Dim ChDir As String
Dim nmFich As String

ChDir = "CHEMIN CONFIDENTIEL"
nmFich = Sheets("CONFIDENTIEL").Range("X29").Value & ".xlsx"

Sheets("Résa CONFIDENTIEL SUD").Copy
Range("A1").CurrentRegion.Copy

Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("A1").Select

ActiveWorkbook.SaveAs Filename:=ChDir & nmFich _
, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

ActiveWorkbook.Close
End Sub

Excellente journée et à bientôt
PS : c'est la 1ère fois que je m'essaie aux forums, le principe est top !
 

Discussions similaires

Statistiques des forums

Discussions
292 782
Messages
1 926 175
Membres
182 940
dernier inscrit
elharf