Soyons bref et concis
Mon fichier se trouve dans un dossier appelé "ça bosse ?"
Les points bloquants:
Créé un sous dossier "Demandes d'intervention" dans le dossier "ça bosse
Créé un dossier au nom de la combobox si il n'existe pas.
Enregistrer la feuille "PDF" dans ce nouveau dossier au format ".pdf".
Bonsoir, Mon fichier se trouve dans un dossier appelé "ça bosse ?" Ceci n'est pas possible "?" interdit comme nom de dossier
Cela pourrait ressembler au classeur en PJ
Classeur exemple à enregistrer dans le répertoire "ça bosse"
Private Sub CommandButton1_Click()
Set f = Sheets("PDF")
f.Range("e1") = ComboBox1.Value
f.Range("e3") = "Ceci est le Pdf Créé"
'***************************
'A partir d'ici:
' création d'un répertoire "Demandes d'intervention" si il n'existe pas
' création d'un sous-répertoire au nom de l'entreprise (celui de la Combobox) si il n'existe pas
' création et sauvegarde de la feuille "PDF" au format pdf dans le sous répertoire correspondant à l'entreprise
'***************************
chemin = ThisWorkbook.Path & "\"
Call creer_dossier(chemin & "Demandes d'intervention\")
dossier = chemin & "Demandes d'intervention\" & ComboBox1.Value & "\"
Call creer_dossier(dossier)
Call creer_pdf(dossier)
End Sub
Avec les subroutines suivantes :
VB:
Sub creer_dossier(s)
If Not Dir(s, vbDirectory) <> "" Then MkDir (s)
End Sub
et
VB:
Sub creer_pdf(dossier)
nom = "Classeur1.pdf"
Sheets("PDF").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
dossier & nom, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End Sub
Option Explicit
Private Declare Function SHCreateDirectoryEx Lib "Shell32.dll" Alias "SHCreateDirectoryExA" _
(ByVal hwnd As Long, _
ByVal pszPath As String, _
ByVal lngsec As Long) As Long
Private Function CreationDossier(sDossier) As Long
Dim Rep As Long
Rep = SHCreateDirectoryEx(0&, sDossier, 0&)
End Function
Sub CreationDossier()
Dim sDossier As String
sDossier = "C:\Essai1\Essai2\Essai3\Essai4\Essai5"
CreationDossier sDossier
End Sub