Faut donc faire comprendre à excel que le fichier a déjà été sauvegardé après la suppression des feuilles
Regardez un peu ce lien --> https://www.excel-pratique.com/fr/astuces_vba/empecher_enregistrement_fichier
En supplément, peut être aussi faire un sauvegarde de votre fichier après l'avoir Sauvé via l'instruction Thisworkbook.save au début du code
Cela donnerait peut être ceci
with ThisWorkbook
.Save
.saveas ........'Précaution : on sauve le fichier avant suppression des feuilles pour la cas où...
End with
'Envoi du fichier sur SharePoint
On Error Resume Next
MkDir chemin
On Error GoTo 0
With ThisWorkbook 'j'ai remplacé Activeworkbook par Thisworkbook puisque c'est le fichier qui contient le code -> A verifier !
Call Delete_Sheets
.Saved = True 'faire croire à excel que le fichier a déjà été sauvé
.SaveAs Filename:=LeRep & LeNom, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Application.DisplayAlerts = False
Un truc à penser serait aussi de n'autoriser la sauvegarde que si l'utilisateur est l'admin du fichier. En combinaison avec le lien que je vous donne avant, c'est ce que j'avais fait pour mon boulot, pour éviter qu'un autre utilisateur ne puisse enregistrer quelque chose
Edit :
Autre solution :
1. Déclarer une variable Boolean Public en entête du module --> Public X as boolean
2. Mettre ce code dans thisworkbook
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If X = true then Cancel = True 'Annule les demandes d'enregistrement si X est à valeur True
End Sub
3. Dans votre code, aouter le ligne pour la variable X
On Error Resume Next
MkDir chemin
On Error GoTo 0
With ThisWorkbook 'j'ai remplacé Activeworkbook par Thisworkbook puisque c'est le fichier qui contient le code
X = True
Call Delete_Sheets
.SaveAs Filename:=LeRep & LeNom, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Application.DisplayAlerts = False
.....
4. A la fin du code , remettre la variable à FALSE -> X = False