Sub Facture_pdf()
Application.ScreenUpdating = False
'Arborescence proposée :
' Dossier ou se trouve le fichier excel "Fichier suivi AutoEntrepreneur"
'1) ==> Dossier Factures
'2) ==> Dossier année de la facture
'3) ==> Dossier du nom du client
'4) ==> nom du fichier pdf
' Exemple : Emplacement du Fichier suivi AutoEntrepreneur\Dossier Factures\2020\Dupont\20200001.pdf
Dim Chemin As String 'Racine du fichier sur le DD du fichier excel en cours
Dim Dossier As String 'Nom du dossier
Dim NFichier As String 'Nom du fichier
Dim Var1 As String
Dim Var2 As String
Dim Var3 As String
Var1 = Mid(Range("C8"), 1, 4) 'Extraction de l'année de la facture : exemple ==> 2020
Var2 = Range("A11") 'Nom du clients : exemple ==> Dupont
Var3 = Range("C8") 'N° de facture : exemple ==> 20200001
If Var2 = Empty Then Exit Sub 'Test si il y a un client car pas de client pas de facture !!
'Construction du nom du fichier avec son emplacement en fonction d'ou se trouve le fichier excel en cours
'1) Verification si le dossier Dossier Factures existe sinon creation
Dossier = "Dossier Factures"
Chemin = Application.ActiveWorkbook.Path & "\" & Dossier
If Dir(Chemin, vbDirectory) = "" Then MkDir Chemin
'2) vérification que le sous dossier Année existe sinon creation
Chemin = Chemin & Var1
Chemin = Application.ActiveWorkbook.Path & "\" & Dossier & "\" & Var1 & "\"
If Dir(Chemin, vbDirectory) = "" Then MkDir Chemin
'3) vérification que le sous dossier Nom du client
Chemin = Chemin & Var2
Chemin = Application.ActiveWorkbook.Path & "\" & Dossier & "\" & Var1 & "\" & Var2 & "\"
If Dir(Chemin, vbDirectory) = "" Then MkDir Chemin
'4) Création du fichier pdf
NFichier = Chemin & Var3 & ".pdf"
'Création du fichier PDF
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=NFichier, Quality _
:=xlQualityMinimum, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
MsgBox "La facture N°" & Var3 & " de " & Var2 & " a été enregitré." & vbCrLf & vbCrLf & "Ici ==> " & Chemin & vbCrLf & vbCrLf & _
"Sous le nom : " & Var3 & ".pdf", 48, "Enregistrement facture en PDF ..."
Application.ScreenUpdating = True
End Sub