Bonjour
C'est là que le pas à pas est utile et des instructions de débogage
Utilises Debug.Print "ce que tu veux" et dans la fenêtre exécution tu auras le résultat
Fred35 a écrit :
(avec une feuil1 en trop mais je ne sais pas d'où ça vient)
La réponse est dans le code
Sub ExportSAV()
Dim wk As Workbook
Dim ws As Worksheet
' Set wk = Workbooks.Add(xlWBATWorksheet)
' Set ws = ThisWorkbook.Worksheets("Rapport1")
' ws.Copy After:=wk.Sheets(Sheets.Count)
Dim nom, chemin As String
nom = ThisWorkbook.Worksheets("Rapport1").Name & Month(Date) & Year(Date)
' Teste si les noms des dossiers sont conformes
With ThisWorkbook.Worksheets("Feuil2")
Debug.Print .Range("B1")
Debug.Print .Range("B1") & "\" & .Range("B2")
Debug.Print .Range("B1") & "\" & .Range("B2") & "\" & .Range("B3")
Debug.Print .Range("B1") & "\" & .Range("B2") & "\" & .Range("B3") & "\" & nom
End With
End
Sheets("Rapport1").Copy
'Test si dossier existe, sion on le créer via la fonction RépertoireExiste
Call RépertoireExiste(ThisWorkbook.Worksheets("Feuil2").Range("B1"))
Call RépertoireExiste(ThisWorkbook.Worksheets("Feuil2").Range("B1") & "\" & ThisWorkbook.Worksheets("Feuil2").Range("B2"))
Call RépertoireExiste(ThisWorkbook.Worksheets("Feuil2").Range("B1") & "\" & ThisWorkbook.Worksheets("Feuil2").Range("B2") & "\" & ThisWorkbook.Worksheets("Feuil2").Range("B3"))
chemin = ThisWorkbook.Worksheets("Feuil2").Range("B1") & "\" & ThisWorkbook.Worksheets("Feuil2").Range("B2") & "\" & ThisWorkbook.Worksheets("Feuil2").Range("B3") & "\" & nom
'ActiveWorkbook.ActiveSheet.SaveAs Filename:=chemin
ActiveWorkbook.SaveAs Filename:=chemin
ActiveWorkbook.Close
End Sub
Je te propose un code (une fois que tu auras trouvé l'erreur)
Testé avec un autre répertoire racine
Sub ExportSAV()
Dim Nom, Chemin As String
Nom = Sheets("Rapport1").Name & Month(Date) & Year(Date)
With Sheets("Feuil2")
On Error Resume Next
MkDir (.Range("B1"))
MkDir (.Range("B1") & "\" & .Range("B2"))
MkDir (.Range("B1") & "\" & .Range("B2") & "\" & .Range("B3"))
On Error GoTo 0
Chemin = .Range("B1") & "\" & .Range("B2") & "\" & .Range("B3") & "\" & Nom
End With
Sheets("Rapport1").Copy
ActiveWorkbook.SaveAs Filename:=Chemin
ActiveWorkbook.Close
End Sub