Sub Enregistrer_Sous_Et_Sauvegarde()
On Error GoTo Fin
Application.DisplayAlerts = False
Dim Titre_Box As String
Dim Nom_Fichier As String, Nom_Fichier_2 As String
Dim Test_Fichier As Integer, Compteur As Integer
Titre_Box = 'Enregistrement et sauvegarde du Fichier'
Nom_Fichier = ThisWorkbook.FullName
Test_Fichier = 0
Do
Nom_Fichier = Application.GetSaveAsFilename(Nom_Fichier, FileFilter:='Fichiers Excel (*.Xls),*.Xls', Title:=Titre_Box)
If Not (Dir$(Nom_Fichier, vbNormal) = '') Then Test_Fichier = MsgBox(LCase(Nom_Fichier) & ' existe déja' & Chr(10) & 'en date du ' & DateValue(FileDateTime(Nom_Fichier)) & Chr(10) & 'voulez vous l'écraser ?', vbYesNo + vbQuestion)
If Test_Fichier = 7 Then Titre_Box = 'Redéfinissez le nom d'enregistrement'
If Nom_Fichier = 'Faux' Then MsgBox 'Fichier non enregistré !', vbOKOnly + vbExclamation: Exit Sub
Loop While Test_Fichier = 7
'test répertoire de sauvegarde
Compteur = InStrRev(Nom_Fichier, '\\', Len(Nom_Fichier), 1)
If Dir$(Left(Nom_Fichier, Compteur) & 'Sauvegarde', vbDirectory) = '' Then MkDir Left(Nom_Fichier, Compteur) & 'Sauvegarde'
'définition du nom de fichier de sauvegarde
Nom_Fichier_2 = Right(Nom_Fichier, Len(Nom_Fichier) - Compteur)
Nom_Fichier_2 = Left(Nom_Fichier_2, InStrRev(Nom_Fichier_2, '.', Len(Nom_Fichier_2), 1) - 1) & Format(Now(), 'ddmmyyyy') & Right(Nom_Fichier_2, Len(Nom_Fichier_2) - (InStrRev(Nom_Fichier_2, '.', Len(Nom_Fichier_2), 1) - 1))
Nom_Fichier_2 = Left(Nom_Fichier, Compteur) & 'Sauvegarde\\' & Nom_Fichier_2
ThisWorkbook.SaveAs Filename:=Nom_Fichier
ThisWorkbook.SaveCopyAs Filename:=Nom_Fichier_2
MsgBox 'Fichier enregistré sous ' & Nom_Fichier & Chr(10) & 'Sauvegarde enregistrée sous ' & Nom_Fichier_2, vbOKOnly + vbInformation
Exit Sub
Fin:
MsgBox 'Un problème est survenu pendant la sauvegarde', vbOKOnly + vbCritical
End Sub
Sub Enregistrer_Et_Sauvegarde()
On Error GoTo Fin
Application.DisplayAlerts = False
Dim Nom_Fichier As String, Nom_Fichier_2 As String
Dim Compteur As Integer
Nom_Fichier = ThisWorkbook.FullName
'test répertoire de sauvegarde
Compteur = InStrRev(Nom_Fichier, '\\', Len(Nom_Fichier), 1)
If Dir$(Left(Nom_Fichier, Compteur) & 'Sauvegarde', vbDirectory) = '' Then MkDir Left(Nom_Fichier, Compteur) & 'Sauvegarde'
'définition du nom de fichier de sauvegarde
Nom_Fichier_2 = Right(Nom_Fichier, Len(Nom_Fichier) - Compteur)
Nom_Fichier_2 = Left(Nom_Fichier_2, InStrRev(Nom_Fichier_2, '.', Len(Nom_Fichier_2), 1) - 1) & Format(Now(), 'ddmmyyyy') & Right(Nom_Fichier_2, Len(Nom_Fichier_2) - (InStrRev(Nom_Fichier_2, '.', Len(Nom_Fichier_2), 1) - 1))
Nom_Fichier_2 = Left(Nom_Fichier, Compteur) & 'Sauvegarde\\' & Nom_Fichier_2
ThisWorkbook.SaveAs Filename:=Nom_Fichier
ThisWorkbook.SaveCopyAs Filename:=Nom_Fichier_2
MsgBox 'Fichier enregistré sous ' & Nom_Fichier & Chr(10) & 'Sauvegarde enregistrée sous ' & Nom_Fichier_2, vbOKOnly + vbInformation
Exit Sub
Fin:
MsgBox 'Un problème est survenu pendant la sauvegarde', vbOKOnly + vbCritical
End Sub