1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
' SaveAsUI renvoie VRAI si la boîte de dialogue "Enregistrer Sous" va être affichée
' Cancel = True entraine l'impossibilité d'enregistrer
Dim vCible As String, vSaveFile As Variant, vQuest As Integer
'Bouton Enregistrer : Enregistrement du fichier sur son emplacement par défaut
If SaveAsUI = False Then
vCible = ThisWorkbook.Path
If InStr(UCase(vCible), "C:\") = 1 Then
MsgBox "Il est interdit de sauvegarder ce fichier sur votre disque dur", vbOKOnly + vbExclamation, "Enregistrement annulé"
'Annule la demande d'enregistrement
Cancel = True
Exit Sub
Else
'Confirmation de l'ordre d'enregistrement
Cancel = False
Exit Sub
End If
'Bouton Enregistrer Sous : Enregistrement du fichier via boite de dialogue
Else
'Demande ou sauver le doc et le nom à lui donner
vSaveFile = Application.GetSaveAsFilename(ThisWorkbook.Name, FileFilter:="Excel workbooks (*.xlsm), *.xlsm", _
Title:="Please DO NOT SAVE this File on your Hard Drive")
'MsgBox vSaveFile
'Si click sur Annuler, alors sortie
If vSaveFile = False Then
Cancel = True
Exit Sub
Else
If InStr(UCase(vSaveFile), "C:\") = 1 Then
MsgBox "Il est interdit de sauvegarder ce fichier sur votre disque dur", vbOKOnly + vbExclamation, "Enregistrement annulé"
Cancel = True
Exit Sub
Else
'Test d'existence du fichier
If Dir(vSaveFile) <> "" Then
vQuest = MsgBox("Ce fichier existe déjà" & Chr(13) & "Voulez vous le remplacer ?", vbQuestion + vbYesNo, "Attention...")
' Si oui, faut t-il l'effacer ?
'Confirmation
If vQuest = 6 Then
'Suppression et enregistrement
Cancel = True
Application.DisplayAlerts = False
ThisWorkbook.SaveAs vSaveFile 'Sauvegarde
Application.DisplayAlerts = True
'Annulation
Else
Cancel = True
Exit Sub ' Stop procédure
End If
'Nouveau fichier
Else
Cancel = True
ThisWorkbook.SaveAs vSaveFile 'Sauvegarde
End If
End If
End If
End If
End Sub |
Partager