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

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???
 

vgendron

XLDnaute Barbatruc
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
 

Snoopy6102000

XLDnaute Junior
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...
 

Snoopy6102000

XLDnaute Junior
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
 

vgendron

XLDnaute Barbatruc
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
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 336
Membres
103 190
dernier inscrit
silverwolf854