Macro enregistrer dans un répertoire precis

Bonjour à tous,

J'ai un fichier excel pour facturation, et je souhaite créer un bouton avec macro pour enregistrer le document dans un dossier precis.

Jusque là tout va bien (e:\factures). Seulement j'aimerai laisser le choix à l'utilisateur de choisir un des sous dossiers pour enregistrer celui-ci.(e:\factures\dossier1 ou dossier2)

Idéalement, le nom du fichier est le contenu de la cellule a1.

J'ai fais le code avec l'enregistreur de macro, bidouillé pour que le fichier se nomme avec le contenu de A1 mais j'ai pas le choix des sous dossiers...

Merci d'avance pour votre aide.

Bonjour José, bonjour le forum,

En pièce jointe un petit exemple avec une UserForm. Tu choisis le sous-dossier dans la Combobox1 puis tu cliques sur le bouton Enregistrer. Le fichier est enregistré dans le sous-dossiers (de E:\factures) choisi, avec la valeur de la cellule A1 de l'onglet Feuil1 comme nom.

Les codes :

Private Sub UserForm_Initialize() 'à l'initialisation de l'UserForm
Dim SF As Object 'définit la variable SF (Système de Fichiers)
Dim DR As Object 'définit la variable DR (Dossier Racine)
Dim SD As Object 'définit la variable SD (Sous Dossier)
Dim DS As Object 'définit la variable DS (DossierS)

Set SF = CreateObject("Scripting.FileSystemObject") 'définit le système de fichier SF
Set DR = SF.Getfolder("E:\factures") 'définit le dossier racine DR
Set SD = DR.subfolders 'définit l'ensemble des sous dossiers SD du dossier racine
For Each DS In SD 'boucle sur tous les dossiers DS de l'ensemble SD
    Me.ComboBox1.AddItem D.Name 'ajoute le nom du dossier à la ComboBox1
Next DS 'prochain dossier de la boucle
End Sub
Private Sub CommandButton1_Click() 'bouton "Enregistrer"
Dim CH As String 'déclare la variable CH (CHemin d'accès)
Dim NF As String 'déclare la variable NF (Nom du Fichier)

If Me.ComboBox1.Value = "" Then 'si la Combobox1 est vide
    MsgBox "Vous devez sélectionner un dossier !" 'message
    Me.ComboBox1.SetFocus 'place le curseur dans la ComboBox1
    Exit Sub 'sort de la procédure
End If 'fin de la condition
NF = Sheets("Feuil1").Range("A1").Value 'définit le nom du fichier (à adapter)
CH = "E:\Facture\" & Me.ComboBox1.Value & "\" 'définit le chemin d'accès au fichier
ThisWorkbook.SaveAs (CH & NF & ".xlsx") 'enregistre le fichier sous (extension à adapter)
End Sub

Le fichier :

276jose-v01.xlsm (24.39 Ko)

Bonjour,

Tout d'abord un grand merci pour la réponse rapide.

Ta solution à l'air de correspondre tout à fait à ce que je souhaitais.

Cependant, quand je clique sur le bouton j'ai :

Erreur d'exécution ´424´ : objet requis

Une petite idée du problème ?

Merci d'avance

Bonjour José, bonjour le forum,

En relisant je vois que j'ai écrit une fois E:\Facture\ et une autre fois E:\factures. L'erreur doit venir de là. Corrige dans la procédure Clic du bouton.

ThauThème a écrit :

Bonjour José, bonjour le forum,

En relisant je vois que j'ai écrit une fois E:\Facture\ et une autre fois E:\factures. L'erreur doit venir de là. Corrige dans la procédure Clic du bouton.

Bonjour @ThauThème

J'avais déja corrigé ça, mais toujours le même message d'erreur.

J'ai l'impression que ça bloque sur ce morceau du code :

For Each DS In SD 'boucle sur tous les dossiers DS de l'ensemble SD
    Me.ComboBox1.AddItem D.Name 'ajoute le nom du dossier à la ComboBox1
Next DS 'prochain dossier de la boucle

Merci

Bonjour José, bonjour le forum,

Oui tu as raison il y a une erreur ! Il manque un S :

Me.ComboBox1.AddItem DS.Name 'ajoute le nom du dossier à la ComboBox1

Désolé...

@ThauThème ça marche !!!

Merci de ton aide

Bonjour ThauThème,

merci pour ton code, j'ai crée un userform avec deux combobox :

capture

pour la combobox "infirmière", le code va bien dans le dossier racine et me liste bien les sous dossiers, par contre je bloque pour la combobox "Mois" ?

Mon répertoire est configuré comme suit w:\INFIRMIERES\NOM DE L'INFIRMIERE\DETAIL DES PAIEMENTS PAR FSE TRANSMISES\01-JANVIER

je voudrais pourvoir sélectionner le mois pour que le fichier s'enregistre dans le bon dossier.

Merci d'avance pour votre aide precieuse.

Bonne journée

Astil

Rechercher des sujets similaires à "macro enregistrer repertoire precis"