Enregistrer dans dossier /sous dossier

Résolu/Fermé
surplus Messages postés 675 Date d'inscription mardi 17 août 2010 Statut Membre Dernière intervention 14 novembre 2021 - Modifié le 2 juin 2021 à 00:57
surplus Messages postés 675 Date d'inscription mardi 17 août 2010 Statut Membre Dernière intervention 14 novembre 2021 - 5 juin 2021 à 20:00
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
A voir également:

12 réponses

fabul Messages postés 39630 Date d'inscription dimanche 18 janvier 2009 Statut Modérateur Dernière intervention 29 janvier 2025 5 474
Modifié le 2 juin 2021 à 06:17
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.
0
surplus Messages postés 675 Date d'inscription mardi 17 août 2010 Statut Membre Dernière intervention 14 novembre 2021 4
2 juin 2021 à 08:48
Pour la raison que j aurais au bout d un an 366 fichiers dans un même dossier
Merci quand même
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
2 juin 2021 à 10:17
Bonjour,

comme ceci:

MsgBox Format(Date, "dd/mm/yyyy") 'date
MsgBox Month(Date) ' mois
MsgBox Year(Date) ' année



remplacer MsgBox par des variables

0
ccm81 Messages postés 10907 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 janvier 2025 2 429
2 juin 2021 à 11:28
Bonjour à tous

et pour formater le mois sur 2 chiffres
m = Format(Date, "mm")

Cdlmnt
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
surplus Messages postés 675 Date d'inscription mardi 17 août 2010 Statut Membre Dernière intervention 14 novembre 2021 4
3 juin 2021 à 22:33
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
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 251
Modifié le 3 juin 2021 à 23:09
Bonjour,

    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 & "\" & ...

0
surplus Messages postés 675 Date d'inscription mardi 17 août 2010 Statut Membre Dernière intervention 14 novembre 2021 4
5 juin 2021 à 03:17
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?
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 251
Modifié le 5 juin 2021 à 07:34
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

0
surplus Messages postés 675 Date d'inscription mardi 17 août 2010 Statut Membre Dernière intervention 14 novembre 2021 4
Modifié le 5 juin 2021 à 13:51
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
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 251
Modifié le 5 juin 2021 à 15:56
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 :
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 ?

0
surplus Messages postés 675 Date d'inscription mardi 17 août 2010 Statut Membre Dernière intervention 14 novembre 2021 4
5 juin 2021 à 16:25
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?
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 251
5 juin 2021 à 17:05
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...
0
surplus Messages postés 675 Date d'inscription mardi 17 août 2010 Statut Membre Dernière intervention 14 novembre 2021 4
Modifié le 5 juin 2021 à 19:32
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?

0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 251
5 juin 2021 à 19:36
Tu te mets sur SaveAs et tu fais F1.
L'aide est très bien faite, c'est la 1ère chose à faire.
Oui, tu démarres un nouveau sujet avec un titre explicite pour ceux qui commencent par une recherche.
eric
0
surplus Messages postés 675 Date d'inscription mardi 17 août 2010 Statut Membre Dernière intervention 14 novembre 2021 4 > eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024
5 juin 2021 à 19:49
j 'ai vu l'aide mais pas compris ou aller donc si dans n importe quelle macro meme hors ce fichier je fais FileFormat=52 cela veut dire .xlsm?
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 251 > surplus Messages postés 675 Date d'inscription mardi 17 août 2010 Statut Membre Dernière intervention 14 novembre 2021
5 juin 2021 à 19:54
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
0
surplus Messages postés 675 Date d'inscription mardi 17 août 2010 Statut Membre Dernière intervention 14 novembre 2021 4 > eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024
5 juin 2021 à 20:00
Bien merci je savais pas c'est pas tres evident si les chiffres changent par année lol
0