Excel macro : Enregistrement du fichier suivant dossier indiqué dans cellules

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Snoopy6102000

XLDnaute Junior
Bonjour,
Je souhaite enregistrer mon fichier (car je pars d'un modèle) dans un dossier, existant ou non (dans ce cas il doit être créé).
J'utilise la formule suivante qui marche :
Sub enregistrement()
'Définir les variables du nom répertoire sauvegarde
Dim Chemin, Annee, Mois
'Définir le répertoire de sauvegarde format "année-mois-semaine"
Chemin = "\\HRY1129\Atelier\Clients\Lancement commande client\"
Année = Sheets("Base").Range("Q2") & "\"
Mois = Sheets("Base").Range("N2") & "\"
'teste de la présence du dossier
If Dir(Chemin) = "" Then MkDir Année
If Dir(Chemin & Année) = "" Then MkDir Mois
fichier = Sheets("Base").Range("N1") & ".xlsm"
ActiveWorkbook.SaveAs Chemin & Année & Mois & "\" & fichier
End Sub

- - -
Cependant, j'essaies de la réutiliser pour un autre fichier, et là ça le marche pas :
Sub enregistrementDevis()
'Définir les variables du nom répertoire sauvegarde
Dim Chemin, Annee
'Définir le répertoire de sauvegarde format "année"
Chemin = "\\HRY1129\Atelier\Clients\Remises de Prix\"
Année = Sheets("Base").Range("Q2") & "\"
'test de la présence du dossier
If Dir(Chemin) = "" Then MkDir Année
fichier = Sheets("Base").Range("N10") & ".xlsm"
ActiveWorkbook.SaveAs Chemin & Année & fichier
End Sub

Honnêtement je ne vois pas pourquoi ça ne marche pas...
Il me met ne peut pas enrgistrer projet VB dans un fichier ne prenant pas en charge les macro, purtant j'ai bien mis une extension xlsm

Une idée? svp???
 
Re : Excel macro : Enregistrement du fichier suivant dossier indiqué dans cellules

Bonjour,

Pour un fichier avec Macro, je pense qu'il te manque un élément dans le Activewworkbook.saveas
il faut préciser le FileFormat
essaie ceci

ActiveWorkbook.SaveAs Chemin & Année & fichier,FileFormat:=xlOpenXMLWorkbookMacroEnabled
 
Re : Excel macro : Enregistrement du fichier suivant dossier indiqué dans cellules

Bonjour, merci pour ça !
Cependant ça ne marche pas, je ne comprend pas car j'indique bien une extension xlsm (donc fichier compatible avec les macros), et même si je rajoute le "fileFormat", ça me dit toujours que ce format ne prendra pas en charge les macros...
 
Re : Excel macro : Enregistrement du fichier suivant dossier indiqué dans cellules

J'ai modifié un peu suivant ce que j'a pu trouvé sur le net :
Là ça bloque déjà quand le dossier n'existe pas. Ici le dossier 08 n'existe pas donc, MkDir, mais là ça me met "erreur d'accès chemin/fichier"

Sub enregistrementDevis()


'Définir les variables du nom répertoire sauvegarde
Dim Chemin, Annee, Mois

'Définir le répertoire de sauvegarde format "année-mois-semaine"
Chemin = "\\HRY1129\Atelier\Clients\Lancement commande client\"
Année = Sheets("Base").Range("Q2").Value & "\" '2014
Mois = Sheets("Base").Range("N2").Value & "\" '08



'teste de la présence du dossier
If Dir(Chemin & Année, vbDirectory) = "" Then MkDir Année
If Dir(Chemin & Année & Mois, vbDirectory) = "" Then MkDir Mois


fichier = Sheets("Base").Range("N1") & ".xlsm"

ActiveWorkbook.SaveAs Chemin & Année & Mois & fichier, FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub
 
Re : Excel macro : Enregistrement du fichier suivant dossier indiqué dans cellules

Re

1) le chemin d'accès sans lettre de lecteur semble ne pas plaire à mon excel.. peut etre est ce la meme chose pour toi?
2) la syntaxe Mkdir chemin & année ne lui plait pas non plus, j'ai donc créé un CheminComplet = chemin & Année PUIS mkdir CheminComplet

avec ce code, j'ai bien le fichier qui est créé

Code:
Sub enregistrementDevis()


'Définir les variables du nom répertoire sauvegarde
Dim Chemin, Annee, Mois

'Définir le répertoire de sauvegarde format "année-mois-semaine"
Chemin = "C:\test\"
année = Sheets("Base").Range("Q2").Value & "\" '2014
Mois = Sheets("Base").Range("N2").Value & "\" '08
cheminComplet = Chemin & année


'teste de la présence du dossier
If Dir(Chemin & année, vbDirectory) = "" Then MkDir (cheminComplet)
cheminComplet = cheminComplet & Mois
If Dir(Chemin & année & Mois, vbDirectory) = "" Then MkDir cheminComplet


fichier = Sheets("Base").Range("N1") & ".xlsm"

ActiveWorkbook.SaveAs cheminComplet & fichier, FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
13
Affichages
856
Réponses
3
Affichages
522
Retour