XL 2021 enregistrer sous un sous répertoire en vba

cgpa

XLDnaute Occasionnel
bonjour le Forum,
Je sollicite votre aide pour un code vba "enregistrer" dans le sous-répertoire du répertoire actif. Je ne désire pas nommer le sous-répertoire avec C\: car le fichier de base est utilisé dans plusieurs dossiers différents.

Tout d'abord, j'utilise ceci qui fonctionne pour enregistrer dans le répertoire actif sans passer par "enregistrer sous":
ActiveWorkbook.SaveAs Filename:=(Range("F1") & " - " & Range("E2")) 'le nom du fichier

J'ai par contre le problème dans mon code ci-dessous pour lui dire d'enregistrer dans le sous-répertoire "Tableaux ENVOI" qui est placé dans le répertoire actif. Le résultat est que ça n'enregistre pas:

Dim Chemin As String, Fichier As String
Chemin = ThisWorkbook.Path & "\Tableaux ENVOIS\" 'précise que c'est dans le sous répertoire Tableaux ENVOIS"
Fichier = (Range("F1") & " ENVOI - " & Range("E2")) 'le nom du fichier à partir des cellules F1 et E2
With Application.FileDialog(msoFileDialogSaveAs)
.InitialFileName = Chemin & Fichier
.Show
End With

La boite de dialogue "enregistrer sous" s'ouvre mais par sur le bon répertoire.
Quelqu'un peut-il/elle me dire où je me trompe?
Je précise que je n'ai pas besoin que "enregistrer sous" s'ouvre, on peut enregistrer directement dans le répertoire.
Merci d'avance, bonne journée!
 
Solution
bonjour patricktoulon, merci beaucoup.
Le code propose bien la boite "enregistrer sous", le bon sous-répertoire de destination et le bon nom de fichier mais lorsque je clique sur ok, le fichier ne s'enregistre pas et le nom devient "classeur".!? C'est étrange. Je viens rapidement de créer un fichier test. Avez-vous un autre moyen d'enregistrer directement dans le sous-répertoire avec le bon nom, quitte à ne plus passer par la boite "enregistrer sous? D'avance, merci pour votre aide.

Finalement, voici la solution:

ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\Tableaux ENVOIS\" & (Range("F1") & " - ENVOI " & Range("E2"))

patricktoulon

XLDnaute Barbatruc
Bonjour
VB:
Dim Chemin As String, Fichier As String
Chemin = ThisWorkbook.Path & "\Tableaux ENVOIS\" 'précise que c'est dans le sous répertoire Tableaux ENVOIS"
Fichier = (Range("F1") & " ENVOI - " & Range("E2")) 'le nom du fichier à partir des cellules F1 et E2
chdir Chemin
With Application.FileDialog(msoFileDialogSaveAs)
.InitialFileName = Chemin & Fichier
.Show
End With
 

cgpa

XLDnaute Occasionnel
Bonjour
VB:
Dim Chemin As String, Fichier As String
Chemin = ThisWorkbook.Path & "\Tableaux ENVOIS\" 'précise que c'est dans le sous répertoire Tableaux ENVOIS"
Fichier = (Range("F1") & " ENVOI - " & Range("E2")) 'le nom du fichier à partir des cellules F1 et E2
chdir Chemin
With Application.FileDialog(msoFileDialogSaveAs)
.InitialFileName = Chemin & Fichier
.Show
End With
bonjour patricktoulon, merci beaucoup.
Le code propose bien la boite "enregistrer sous", le bon sous-répertoire de destination et le bon nom de fichier mais lorsque je clique sur ok, le fichier ne s'enregistre pas et le nom devient "classeur".!? C'est étrange. Je viens rapidement de créer un fichier test. Avez-vous un autre moyen d'enregistrer directement dans le sous-répertoire avec le bon nom, quitte à ne plus passer par la boite "enregistrer sous? D'avance, merci pour votre aide.
 

Pièces jointes

  • test.xlsm
    13 KB · Affichages: 2
Dernière édition:

cgpa

XLDnaute Occasionnel
bonjour patricktoulon, merci beaucoup.
Le code propose bien la boite "enregistrer sous", le bon sous-répertoire de destination et le bon nom de fichier mais lorsque je clique sur ok, le fichier ne s'enregistre pas et le nom devient "classeur".!? C'est étrange. Je viens rapidement de créer un fichier test. Avez-vous un autre moyen d'enregistrer directement dans le sous-répertoire avec le bon nom, quitte à ne plus passer par la boite "enregistrer sous? D'avance, merci pour votre aide.

Finalement, voici la solution:

ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\Tableaux ENVOIS\" & (Range("F1") & " - ENVOI " & Range("E2"))
 

Discussions similaires

Statistiques des forums

Discussions
312 560
Messages
2 089 657
Membres
104 247
dernier inscrit
pegaso