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 :