Sauvegarger un fichier dans un répertoire en fonction de la valeur d' une cellule

  • Initiateur de la discussion Initiateur de la discussion Ab68
  • Date de début Date de début

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 !

Ab68

XLDnaute Nouveau
Bonsoir le forum
Je bute sur le code qui permet de sauvegarder un fichier Excel dans un répertoire déjà crée ou crée par la macro.
La référence est la cellule "G1" ( une année transformée en texte par formule CTXT) du fichier.
Le nom du fichier est extrait de la cellule "A1".
Le code ci dessous me crée un répertoire ANNEE au lieu de la valeur texte en "G1" qui est 2013.

Dim ANNEE As String
ANNEE = Range("G1").Text

If Dir(ThisWorkbook.Path & "\ANNEE", vbDirectory) = "" Then MkDir ThisWorkbook.Path & "\ANNEE"
ActiveWorkbook.SaveAs "D:\Mes documents\CCS\ANNEE\" & (ActiveWorkbook.Worksheets(1).Range("A1").Text & ".xls")

Petite précision ce code bloque si je réponds Non ou Annuler à la boîte de dialogue lors de l' enregistrement.
Chemin du fichier initial: D:\Mes documents\CCS\"Compil randos printemps"
Chemin de sauvegarde: D:\Mes documents\CCS\2013\"Compil randos printemps 2013"
\2014\"...."
Le fichier est rempli par macro, trié et lignes nulles supprimées avant enregistrement, le nom modifié me permet de le différencier facilement.

Merci aux contributeurs qui auront pris la peine de me lire et m' apporteront une solution.
 
Re : Sauvegarger un fichier dans un répertoire en fonction de la valeur d' une cellul

Bonjour,

Ton code bloque parce que tu utilises un texte "ANNEE" au lieu d'utiliser ta variable.

Ci-dessous, la correction a apporté.

Code:
If Dir(ThisWorkbook.Path & "\" & ANNEE, vbDirectory) = "" Then MkDir ThisWorkbook.Path & "\" & ANNEE
ActiveWorkbook.SaveAs "D:\Mes documents\CCS\" & ANNEE & "\" & (ActiveWorkbook.Worksheets(1).Range("A1").Text & ".xls")

Cordialement,
Orodreth
 
Re : Sauvegarger un fichier dans un répertoire en fonction de la valeur d' une cellul

Bonjour Orodreth
Super ça fonctionne
Sans vouloir abuser, petite question subsidiaire, déjà posée hier soir, comment quitter sans "buger" si réponse Non ou Annuler à l' invite d' enregistrer.
MERCI pour ce dépannage ultra rapide.
Cordiales salutations
 
Re : Sauvegarger un fichier dans un répertoire en fonction de la valeur d' une cellul

bonjour ab68, Orodreth et le forum

voici un code qui met de sauvagarder le fichier par la croix en fonction du nom qui se trouve en cell "g17" dans l'exemple,peut etre peut tu en tirer quelque chose
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error GoTo erreur
varname = Sheets("Feuil1").Range("g17").Value
fname = InputBox("enregistrer le fichier sous le nom", "Enregistrement", varname)
ActiveWorkbook.SaveAs Filename:=fname
Exit Sub
erreur:
rep = MsgBox("Une erreur c'est produite, voulez vous quitter sans sauvegarder", vbYesNo)
If rep = 7 Then Cancel = True
End Sub

Pascal
 
Re : Sauvegarger un fichier dans un répertoire en fonction de la valeur d' une cellul

Bonjour,

Quelqu'un peut me dire ce qui bogue dans ma VBA :

Code:
Sheets("BdC").Select
nbdc = Format(Now, "yyyy"" ""mmdd""_""hhmmss")

nbdc = Range("n49") & " " & nbdc

Range("A5") = nbdc
'Enregistrement du Bon de Commande sur le PC de l'acheteur

Dossier = WorksheetFunction.VLookup(Range("N49"), Range("Code_Dep"), 2, False)

If Dir(ThisWorkbook.Path & "\" & Dossier, vbDirectory) = "" Then MkDir ThisWorkbook.Path & "\" & Dossier
ActiveWorkbook.SaveAs Dossier & "\" & nbdc & ".xlsx"
End If

Exit Sub

Ca me plante à If Dir(ThisWorkbook.Path...

Grrrrr mais merci par avance. et puis fermer sans boguer, c'est génial ça, je suis fascinée 🙂
 
- 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

Retour