Enregistrer dans dossier /sous dossier
Résolu
surplus
Messages postés
673
Date d'inscription
Statut
Membre
Dernière intervention
-
surplus Messages postés 673 Date d'inscription Statut Membre Dernière intervention -
surplus Messages postés 673 Date d'inscription Statut Membre Dernière intervention -
Bonjour
j'ai un fichier excel avec une macro pour enregistrer une copie du fichier en le renommant a la date du jour qui enregistre le fichier dans le meme dossier que son original ça marche tres bien .
Quand vous cliquez sur appel ça crée une feuille renommee en hh mm ss et si je clique créer classeur du jour ça enregistre un fichier nommé 02-06-2021.xlsm.
mais je voudrais en fait l'enregistrer dans un dossier correspondant a l'année et sous dossier correspondant au mois ce qui donnerait enregistrer dans:
dossier path/2021/06/02-6-2021.xlsm pour aujourd'hui
j'arrive a renommer le fichier mais pas faire les 2 sous dossiers
je vous mets le fichier exemple
https://www.cjoint.com/c/KFbwhMo2sRe
merci de votre aide
Slts A bientôt
Surplus
j'ai un fichier excel avec une macro pour enregistrer une copie du fichier en le renommant a la date du jour qui enregistre le fichier dans le meme dossier que son original ça marche tres bien .
Quand vous cliquez sur appel ça crée une feuille renommee en hh mm ss et si je clique créer classeur du jour ça enregistre un fichier nommé 02-06-2021.xlsm.
mais je voudrais en fait l'enregistrer dans un dossier correspondant a l'année et sous dossier correspondant au mois ce qui donnerait enregistrer dans:
dossier path/2021/06/02-6-2021.xlsm pour aujourd'hui
j'arrive a renommer le fichier mais pas faire les 2 sous dossiers
je vous mets le fichier exemple
https://www.cjoint.com/c/KFbwhMo2sRe
merci de votre aide
Slts A bientôt
Surplus
A voir également:
- Enregistrer dans dossier /sous dossier
- Dossier appdata - Guide
- Impossible de supprimer un dossier - Guide
- Audacity enregistrer son pc - Guide
- Dossier démarrage - Guide
- Mettre un mot de passe sur un dossier - Guide
12 réponses
Salut,
Je peux pas t'aider.
Mais juste faire une remarque.
Pourquoi ton fichier s'appelle pas 2021-06-02-06-14-00.xlsm
AAAA-MM-JJ-HH-MM-SS
Ça serait classé en ordre, pas besoin de dossiers.
Je peux pas t'aider.
Mais juste faire une remarque.
Pourquoi ton fichier s'appelle pas 2021-06-02-06-14-00.xlsm
AAAA-MM-JJ-HH-MM-SS
Ça serait classé en ordre, pas besoin de dossiers.
Bonjour,
comme ceci:
remplacer MsgBox par des variables
comme ceci:
MsgBox Format(Date, "dd/mm/yyyy") 'date MsgBox Month(Date) ' mois MsgBox Year(Date) ' année
remplacer MsgBox par des variables
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonjour a tous
ça pour renommer le fichier y a pas de soucis c'est fait ce que je cherche a faire c'est de faire 2 dossiers et mettre le fichier dedans les MsgBox je vois pas a quoi ils me serviraient je voudrais un enregistrement auto dans chaque dossier et si il existe pas le faire
merci
ça pour renommer le fichier y a pas de soucis c'est fait ce que je cherche a faire c'est de faire 2 dossiers et mettre le fichier dedans les MsgBox je vois pas a quoi ils me serviraient je voudrais un enregistrement auto dans chaque dossier et si il existe pas le faire
merci
Bonjour,
eric
PS : j'ai mis un dossier fixe C:\tmp, tu voudras sans doute ThisWorkbook.Path & "\" & ...
If Dir("c:\tmp\" & Year(Date), 16) = "" Then MkDir "c:\tmp\" & Year(Date) If Dir("c:\tmp\" & Year(Date) & "\" & Format(Month(Date), "00"), 16) = "" Then MkDir "c:\tmp\" & Year(Date) & "\" & Format(Month(Date), "00")
eric
PS : j'ai mis un dossier fixe C:\tmp, tu voudras sans doute ThisWorkbook.Path & "\" & ...
bonjour
cela me serait egal de l'enregistrer dans le path ou ailleur mais la solution que tu me donnes je sais pas quoi en faire ou je dois l'inser .
j'ai mis le classeur en exemple avec ma macro ou on doit intégrer ta solution?
cela me serait egal de l'enregistrer dans le path ou ailleur mais la solution que tu me donnes je sais pas quoi en faire ou je dois l'inser .
j'ai mis le classeur en exemple avec ma macro ou on doit intégrer ta solution?
Bonjour,
Ta question était mais pas faire les 2 sous dossiers
Ue fois que tu connais le chemin et le nom de fichier, ces 2 lignes te créent les répertoires nécessaires s'ils n'existent pas.
Tu peux ensuite y enregistrer ton fichier sans erreur.
erreur
Ta question était mais pas faire les 2 sous dossiers
Ue fois que tu connais le chemin et le nom de fichier, ces 2 lignes te créent les répertoires nécessaires s'ils n'existent pas.
Tu peux ensuite y enregistrer ton fichier sans erreur.
erreur
Bonjour
les 2 dossiers j'arrivais a les faire mais pas a y enregistrer dedans avec cette macro tu mets ces 2 lignes ou par rapport a la mienne?
Sub creer_classeur()
Dim fich
fich = ActiveWorkbook.Path & "\" & Day(Date) & "-" & Month(Date) & "-" & Year(Date)
ActiveWorkbook.SaveAs fich
end sub
les 2 dossiers j'arrivais a les faire mais pas a y enregistrer dedans avec cette macro tu mets ces 2 lignes ou par rapport a la mienne?
Sub creer_classeur()
Dim fich
fich = ActiveWorkbook.Path & "\" & Day(Date) & "-" & Month(Date) & "-" & Year(Date)
ActiveWorkbook.SaveAs fich
end sub
Re,
Non, tu ne crées pas tes répertoires ici.
De plus tu ne mets pas l'extension du fichier, ni le type de fichier voulu (préférable...).
Essaie avec ça :
eric
PS : pour ma part, je nommerai plutôt le le fichier aaaa-mm-jj.xlsm
Si un jour tu regroupes plusieurs mois, ils resteraient triés chronologiquement
PS2 : tu es bien conscient que ActiveWorkbook est le classeur actif qui peut être n'importe lequel, et non celui avec cette macro qui est ThisWorkbook ?
Non, tu ne crées pas tes répertoires ici.
De plus tu ne mets pas l'extension du fichier, ni le type de fichier voulu (préférable...).
Essaie avec ça :
Sub creer_classeur() Dim fich As String ' rep année fich = ActiveWorkbook.Path & "\" & Year(Date) If Dir(fich, 16) = "" Then MkDir fich ' rep mois fich = fich & "\" & Format(Month(Date), "00") If Dir(fich, 16) = "" Then MkDir fich ' fichier fich = fich & "\" & Format(Day(Date), "00") & "-" & Format(Month(Date), "00") & "-" & Year(Date) ActiveWorkbook.SaveAs fich & ".xlsm", FileFormat:=52 ' ou ' ActiveWorkbook.SaveAs fich & ".xlsx", FileFormat:=51 End Sub
eric
PS : pour ma part, je nommerai plutôt le le fichier aaaa-mm-jj.xlsm
Si un jour tu regroupes plusieurs mois, ils resteraient triés chronologiquement
PS2 : tu es bien conscient que ActiveWorkbook est le classeur actif qui peut être n'importe lequel, et non celui avec cette macro qui est ThisWorkbook ?
bonjour
Superça fonctionne tres bien Merci
je vais essayer de faire comme tu dis ici
"PS : pour ma part, je nommerai plutôt le le fichier aaaa-mm-jj.xlsm
Si un jour tu regroupes plusieurs mois, ils resteraient triés chronologiquement" par contre de toutes facons pour
"PS2 : tu es bien conscient que ActiveWorkbook est le classeur actif qui peut être n'importe lequel, et non celui avec cette macro qui est ThisWorkbook ? "
la macro sera dans le classeur actif elle demarrera pas d'un autre.
ou je me trompe?
Superça fonctionne tres bien Merci
je vais essayer de faire comme tu dis ici
"PS : pour ma part, je nommerai plutôt le le fichier aaaa-mm-jj.xlsm
Si un jour tu regroupes plusieurs mois, ils resteraient triés chronologiquement" par contre de toutes facons pour
"PS2 : tu es bien conscient que ActiveWorkbook est le classeur actif qui peut être n'importe lequel, et non celui avec cette macro qui est ThisWorkbook ? "
la macro sera dans le classeur actif elle demarrera pas d'un autre.
ou je me trompe?
Si tu lances la macro avec un autre classeur actif, c'est ce dernier qui sera enregistré.
Si tu es sûr à 100% que c'est toujours le bon qui sera actif, ça ne change rien.
Si c'est systématiquement celui de la macro qu'il faut enregistrer (cas le plus courant) il faut utiliser ThisWorkbook. C'est plus clair pour tout le monde et aucun risque qu'un utilisateur réussisse à en sauvegarder un autre. Tu crois avoir un backup, et walou, c'est sa liste de course que tu as...
Si tu es sûr à 100% que c'est toujours le bon qui sera actif, ça ne change rien.
Si c'est systématiquement celui de la macro qu'il faut enregistrer (cas le plus courant) il faut utiliser ThisWorkbook. C'est plus clair pour tout le monde et aucun risque qu'un utilisateur réussisse à en sauvegarder un autre. Tu crois avoir un backup, et walou, c'est sa liste de course que tu as...
ok je comprends la différence donc autant la réserver a ce fichier en effet.
pourquoi il y a des chiffres dans ta macro style " FileFormat = 52" ?ça corresponds a quoi?
j'ai 2 autres questions sur ce fichier je fais un nouveau post?
pourquoi il y a des chiffres dans ta macro style " FileFormat = 52" ?ça corresponds a quoi?
j'ai 2 autres questions sur ce fichier je fais un nouveau post?
Oui, c'est le format de fichier voulu :
51 = xlOpenXMLWorkbook (without macro's in 2007-2010, xlsx)
52 = xlOpenXMLWorkbookMacroEnabled (with or without macro's in 2007-2010, xlsm)
50 = xlExcel12 (Excel Binary Workbook in 2007-2010 with or without macro's, xlsb)
56 = xlExcel8 (97-2003 format in Excel 2007-2010, xls)
Tu as aussi :
FileFormat:=xlCSV pour un *.csv
et Type:=xlTypePDF pour un *.pdf
51 = xlOpenXMLWorkbook (without macro's in 2007-2010, xlsx)
52 = xlOpenXMLWorkbookMacroEnabled (with or without macro's in 2007-2010, xlsm)
50 = xlExcel12 (Excel Binary Workbook in 2007-2010 with or without macro's, xlsb)
56 = xlExcel8 (97-2003 format in Excel 2007-2010, xls)
Tu as aussi :
FileFormat:=xlCSV pour un *.csv
et Type:=xlTypePDF pour un *.pdf