Bonjour le Forum
J’utilise une macro qui fonctionne très bien mais je vois qu’elle n’est pas bien écrite
Cette macro enregistre la feuille « VISITE » en deux formats xlsx et pdf sous le nom du prof et date de visite dans un dossier nommé « Rapports »
Est-ce possible la simplification de ce code en gardant le rôle ?
Un fichier simple ci-joint
Merci d’avance à votre aide
Cordialement
Sub Sauvegarder() 'Sauvegarder la feuille "Visite" sous format xlsx et pdf
Dim wkb As Workbook, nm As Name
Dim Sh
Reponse = MsgBox("Veux-tu créer un fichier PDF à partir du feuille active ?", _
vbYesNo + vbDefaultButton2 + vbExclamation, "Créer un fichier PDF")
Application.ScreenUpdating = False
ChemindAcces$ = "C:\Dossier_Inspect-V11\Rapports" 'Dossier de sauvegarde
NomFichier$ = Feuil2.Range("B5") & "_" & Feuil2.Range("A6") & "_" & Format(Feuil2.Range("B7"), "ddmmyyyy") & ".pdf"
If Reponse = vbNo Then End
With Sheets("Visite")
'''.Unprotect
.Shapes.Range(Array("ztxt1")).Line.Visible = msoFalse 'Enlever le contour de la z_text sur la feuille sauvegardée
End With
Sheets("Visite").Copy
Range("Plage").Copy
Range("Plage").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Set wkb = ActiveWorkbook 'Supprimerles noms définis
On Error Resume Next
For Each nm In wkb.Names
nm.Delete
Next nm
ChemindFichier$ = "C:\Dossier_Inspect-V11\Rapports" & "\" & NomFichier$
ActiveWorkbook.SaveCopyAs ChemindAcces$ & "\" & Feuil2.Range("B5") & "_" & Feuil2.Range("A6") & "_" & Format(Feuil2.Range("B7"), "ddmmyyyy") & ".xlsx"
ActiveWorkbook.Close False
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ChemindFichier$, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
With Sheets("Visite")
''' .Protect
.Shapes.Range(Array("ztxt1")).Line.Visible = msoTrue 'Garder le contour de la z_text sur la feuille source
End With
Application.ScreenUpdating = True
End Sub