Re : VBA > Créer un dossier nom variable et y enregistrer un fichier portant le même
Re
rems:
Par curiosité (et parce que cela pourrait intéresser d'autres membres du forum), tu peux publier, stp, ta macro finale et fonctionnelle ?
Bonsoir,
Tout d'abord, désolé de ne pas avoir exprimé correctement mes besoins et réponses ...
Veuillez trouver ci-dessous le code utilisé (je ne sais pas si c'est la façon la plus correcte de l'écrire mais ça fonctionne) pour :
- la création d'une nouvelle feuille (+ copie valeur de certaines cellules) qui portera le nom de la cellule I4 (Nom) ;
- la création d'un dossier (en vérifiant au préalable qu'il n'existe pas déjà) qui tire son nom de la cellule I4 (Nom) de la feuille nouvellement créée ;
- la proposition de le sauvegarder selon un chemin précis (C:\Fiches\)
Je suis preneur de vos commentaires et améliorations.
Merci à tous pour votre aide.
Bonne soirée,
Rems
- - - - - - - - - - - - - - -
Sub Savesheet()
ActiveSheet.Copy
Nom = [I4]
ActiveSheet.Name = Nom
InitialFileName = Nom
ActiveSheet.Range("A1:J45").Copy
ActiveSheet.Range("A1:J45").PasteSpecial xlPasteValues
Dim FolderPath As String
Dim TestStr As String
FolderPath = "C:\Fiches\" & Nom
If Right(FolderPath, 1) <> "\" Then
FolderPath = FolderPath & "\"
End If
TestStr = ""
On Error Resume Next
TestStr = Dir(FolderPath)
On Error GoTo 0
If TestStr = "" Then
MkDir "C:\Fiches\" & Nom
ChDir "C:\Fiches\" & Nom
Application.Dialogs(xlDialogSaveAs).Show CStr(ThisWorkbook.ActiveSheet.Range("I4").Value)
Else
MsgBox "ATTENTION : folder already exists."
Application.Dialogs(xlDialogSaveAs).Show CStr(ThisWorkbook.ActiveSheet.Range("I4").Value)
End If
End Sub