XL 2021 enregistrer sous un sous répertoire en vba

  • Initiateur de la discussion Initiateur de la discussion cgpa
  • 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 !

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"))
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
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

Dernière édition:
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"))
 
- 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

  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
860
Retour