Public Sub SauvegardeFichierDialogue()
Dim ReponseMsgBox As Variant
M$ = "<Oui> Pour enregistrer ?" & vbLf & "<Non> Pour quitter ?" & vbLf & "sinon <Annuler> ?"
ReponseMsgBox = MsgBox(M$, vbQuestion + vbYesNoCancel, "Choix:")
If ReponseMsgBox = vbYes Then ' enregistrer
GoSub Sauvegarde: ActiveSheet.Range("C3:C7") = ""
ElseIf ReponseMsgBox = vbNo Then ' quitte close classeur
ThisWorkbook.Close
Else 'Cancel vide cellules
ActiveSheet.Range("C3:C7") = ""
End If
Exit Sub
Sauvegarde: ' sous prog ----------
NomDuClasseur$ = ThisWorkbook.Name
'Extention fichier
Ext$ = "xls"
I = InStr(NomDuClasseur$, ".")
If I = 0 Then NomDuClasseur$ = NomDuClasseur$ & "." & Ext$ Else Ext$ = Mid(NomDuClasseur$, I + 1)
'Idx Workbooks
For I = 1 To Workbooks.Count
If Workbooks(I).Name = NomDuClasseur$ Then IdxW = I: Exit For
Next
'FileFormat origine
FilF = Workbooks(IdxW).FileFormat
'si version excel 2007 avec ou sans macro imposer avec soit.xlsm
If Int(Val(Application.Version)) >= 12 Then '12=VersionExcel2007
If FilF = xlOpenXMLWorkbookMacroEnabled Or FilF = xlOpenXMLWorkbook Then Ext$ = "xlsm"
End If
If LCase(Ext$) = "xlsm" Then FilF = xlOpenXMLWorkbookMacroEnabled 'fileformat pour 2007
'message pour boite de dialogue
If Ext$ = "xls" Then
MsgBoitDialogSelonFileFormat$ = "Fichiers Excel97-2003 (*.xls),*.xls"
ElseIf F$ = "xlsm" Then
MsgBoitDialogSelonFileFormat$ = "Fichiers Excel2007 (*.xlsm),*.xlsm"
End If
'rep d'origine
'Rep$ = Workbooks(IdxW).Path: Rep$ = Trim(Rep$)
RetSvgClas: '<<< retour si erreur entrée
' boite de dialogue
Application.ScreenUpdating = True
RepFichSVG$ = Application.GetSaveAsFilename(NomDuClasseur$, fileFilter:=ExtSaisie$)
If RepFichSVG$ = "Faux" Then Return
' demande confirmation enregistrement
T$ = "Enregistrement": M$ = RepFichSVG$: F$ = Dir(RepFichSVG$)
If F$ > "" Then M$ = M$ & vbLf & vbLf & "Attention <" & F$ & "> existe déjà ! Confirmez le remplacement !?"
ReponseMsgBox = MsgBox(M$, vbExclamation + vbYesNo + vbDefaultButton2, T$)
If ReponseMsgBox <> vbYes Then GoTo RetSvgClas 'retour saisie
' enregistrement
Application.DisplayAlerts = False
Workbooks(NomDuClasseur$).SaveAs Filename:=RepFichSVG$, FileFormat:=FilF
Application.DisplayAlerts = True
Return
End Sub